【发布时间】:2014-12-24 18:01:53
【问题描述】:
回调:
static size_t w_callback(char *ptr, size_t size, size_t nmemb, void *userdata) {
#ifdef DBG
add_debug("Curl callback is called from pastebin");
#endif
pastebin_ret_data = ptr;
return CURLE_OK;
}
主要:
curl_easy_setopt(curl, CURLOPT_POST, (void*)1);
curl_easy_setopt(curl, CURLOPT_URL, (void*)api_url_u8.c_str());
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, &curl_err_buf[0]);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, (void*)w_callback);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, (void*)postfields_u8.c_str());
CURLcode res = curl_easy_perform(curl); // blocking file transfer
#ifdef DBG
add_debug("easy_perform result: " + std::to_string(res) +
" error msg: " + &curl_err_buf[0] );
#endif
curl_easy_cleanup(curl);
调试: 从 pastebin 调用 curl 回调 时间:2014年12月24日星期三09:47:44
easy_perform 结果:23 错误消息:写入正文失败 (0 != 30)
有什么问题?
【问题讨论】:
-
注意到回调函数的返回类型了吗?
size_t应该告诉你函数应该返回一个大小而不仅仅是一个状态码。 -
不好意思,谢谢!