全部,我试图在这里搜索建议的线程,但没有可用的。
我需要使用 libCURL POST 请求将文件发送到 Web 服务器。我正在创建要发送的文件,所以我知道它存在。我还在这里安装了一个 WireShark,所以我知道发送了什么。
在调试会话期间,我可以看到文件已被读取,并且读取到的缓冲区正在发送出去。但是,在 WireShark 中,它都显示为 FF FF FF FF 序列。
最后操作失败,“写入正文时出错”错误消息返回到 CURL。
知道可能是什么问题吗?
这是我到目前为止所尝试的:
1.
result = curl_formadd( &first, &last, CURLFORM_COPYNAME, "MyFile",
CURLFORM_FILE, (const char *) fileName.c_str(),
CURLFORM_FILENAME, (const char *) fileName.c_str(),
CURLFORM_CONTENTSLENGTH, (long) file.Length(),
CURLFORM_CONTENTTYPE, "image/bitmap", CURLFORM_END );
2.
result = curl_formadd( &first, &last, CURLFORM_COPYNAME, "MyFile",
CURLFORM_FILENAME, (const char *) fileName.c_str(),
CURLFORM_STREAM, &file, CURLFORM_CONTENTSLENGTH,
(long) file.Length(), CURLFORM_CONTENTTYPE,
"image/bitmap", CURLFORM_END );
然后在这两种情况下:
curl_easy_setopt( handle, CURLOPT_HTTPPOST, first );
curl_easy_setopt( handle, CURLOPT_POSTFIELDSIZE, file.Length() );
两种情况下的标头都正确形成,但数据本身并未发送。
有人有想法吗?我觉得我错过了一些非常简单的东西......