2010-11-09 61 views
1

我正在嘗試使用libcurl對Web服務執行SOAP http post。我有已經在我生成的XML文件中形成的SOAP請求。現在我需要將這些XML文件轉換爲web服務。注:我對編寫webservices(特別是C)非常陌生。使用libcurl作爲XML文件發送SOAP請求

有沒有辦法使用libcurl直接從XML文件發送SOAP請求?或者我必須將內容讀入字符串?我僅限於使用C編程語言來完成任務。

我一直在尋找通過文檔和不同的代碼片段,但我似乎無法找到任何要求做。這個捲曲鏈接通過字符串http://curl.haxx.se/libcurl/c/post-callback.html)。爲了速度的目的,我非常希望在發送之前不必傳遞給字符串。

+0

的「無效* userp」從回調是你在DATA部分提供的內容,可能是'F'例如,ILE *'。 – 2010-11-09 12:49:33

回答

2

你使用curl_easy_setopt()?那麼你可能想看看CURLOP_WRITEFUNCTION和CURLOPT_WRITEDATA。

+0

我一直在嘗試使用這種方法來完成此操作,但沒有多少運氣。我甚至無法使用下面的curl命令來執行該文章:curl -v -X POST -d @ file.xml「Content-Type:text/xml」「:80/service」 – 2010-11-10 17:55:19

1

的方式我這樣做:
*獲取TinyXML,將文件加載到一個TiXmlDocument和使用TiXmlPrinter來獲取XML文件作爲字符串
*設置字符串的值在POST請求的主體(同時,設置頭,但它們是相同的HTTP標頭)
*看看curl_easy_setopt()回調和其他的東西(:

好運(:

+1

您能否發佈這是如何工作的代碼示例。這將不勝感激。 – 2010-11-10 17:57:45

+1

其實..你有沒有寫在xml文件中的標題?這一點很重要。如果是這樣,TinyXML將不會被使用,因爲它不會識別標題並且不會解析文檔。兩個選項然後..但首先 - 文件中的標題? – 2010-11-10 18:30:49