2012-07-28 48 views
-1

ALL, 我試圖在這裏搜索建議的主題,但沒有可用性。使用libCURL的簡單HTTP帖子

我需要使用libCURL POST請求將文件發送到Web服務器。 我正在創建我發送的文件,所以我知道它存在。 我也在這裏安裝了WireShark,所以我知道發送了什麼。

在調試會話期間,我可以看到文件已被讀取並且讀取的緩衝區正在發送出去。但是,在WireShark中,它全部顯示爲FF FF FF FF序列。

最後,操作失敗,並顯示「Error writing the body」錯誤消息返回到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()); 

兩個頭案件形成正確,但數據其精靈不發送。

有沒有人有想法?我覺得我錯過了很簡單的東西...

回答

1

ALL, 原來我嘗試連接的服務已經關閉。

謝謝你的收聽。