2010-11-09 154 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