作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 curl 的程序。它的一部分看起来像这样..
char* Error = NULL;
Error = (char*)malloc(1024);
memset(Error, 0, 1024);
..............
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, Error);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 3);
if(CURLE_OK != curl_easy_perform( curl)){
Error[1023] = '\0';
// cout << "cURL returned: " << Error << endl;
}
curl_easy_cleanup(curl);
free(Error);
如您所见,我已经使用 char * 作为错误缓冲区...如何使用字符串而不是 char *,因为我已经有一个包含其他错误字符串的 std::list
即使没有错误,cout 也会将其打印到屏幕上:
cURL returned: Failed writing body (442456 != 998)
避免这种情况的 if 条件应该是什么?
最佳答案
您不能使用 std::string 来接收错误,因为它没有可写缓冲区。
如果您想使用 STL 而不必处理数组内存,则可以使用 std::vector。
const size_t errBufSize = 1024;
std::vector<char> errBuf( errBufSize );
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, &errBuf[0]);
您实际的错误可能来自代码的其余部分,例如,如果您向它传递一个错误缓冲区,您可能还必须向它传递缓冲区大小。
我认为“写入正文失败”是因为 Curl_write_callback 没有返回传递给它的相同字节数。
关于c++ - 帮助解决 Curl ERRORBUFFER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4374644/
我有一个使用 curl 的程序。它的一部分看起来像这样.. char* Error = NULL; Error = (char*)malloc(1024); memset(Error, 0, 1024
我是一名优秀的程序员,十分优秀!