-1

全部,我试图在这里搜索建议的线程,但没有可用的。

我需要使用 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() );

两种情况下的标头都正确形成,但数据本身并未发送。

有人有想法吗?我觉得我错过了一些非常简单的东西......

4

1 回答 1

1

ALL,原来我尝试连接的服务已关闭。

谢谢你的聆听。

于 2012-07-31T02:20:21.937 回答