声明

  1. typedef enum {
  2. CURLINFO_TEXT = 0,
  3. CURLINFO_HEADER_IN, /* 1 */
  4. CURLINFO_HEADER_OUT, /* 2 */
  5. CURLINFO_DATA_IN, /* 3 */
  6. CURLINFO_DATA_OUT, /* 4 */
  7. CURLINFO_SSL_DATA_IN, /* 5 */
  8. CURLINFO_SSL_DATA_OUT, /* 6 */
  9. CURLINFO_END
  10. } curl_infotype;
  11. int debug_callback(CURL *handle,
  12. curl_infotype type,
  13. char *data,
  14. size_t size,
  15. void *userptr);
  16. CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DEBUGFUNCTION,
  17. debug_callback);

概要

调试回调。

详情

传入一个指向你的回调函数的指针,该函数应该符合上面显示的原型。

CURLOPT_DEBUGFUNCTION会替换掉当CURLOPT_VERBOSE生效时使用的标准调试函数。这个回调接收通过type参数指定的调试信息。这个函数必须返回0。传递给这个函数的通过char*指向的data不会以0结束,但会跟size参数指定的大小准确地一致。

userptr参数是通过CURLOPT_DEBUGDATA设置的指针。

可用的curl_infotype值:

CURLINFO_TEXT

数据是信息性的文本。

CURLINFO_HEADER_IN

数据是从另一端接收到的头部(或者类似头部的数据)。

CURLINFO_HEADER_OUT

数据是发送给另一端的头部(或者类似头部的数据)。

CURLINFO_DATA_IN

数据是从另一端接收到的协议数据。

CURLINFO_DATA_OUT

数据是发送给另一端的协议数据。

CURLINFO_SSL_DATA_OUT

数据是发送给另一端的SSL/TLS(二进制)数据。

CURLINFO_SSL_DATA_IN

数据是从另一端接收到的SSL/TLS(二进制)数据。

默认值

无。

适用协议

所有协议。

可用性

总是可用。

返回值

返回CURLE_OK