Web服务XML请求中的错误处理


Error Handling in Web service XML request

我一直在尝试执行XML请求。我遇到过很多问题,但我都解决了。但是这个我解不出来。脚本如下:

$url ="WebServiceUrl";
$xml="XmlRequest";
            $ch = curl_init($url);
            curl_setopt($ch, CURLOPT_MUTE, 1);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
            curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $output = curl_exec($ch);
            curl_close($ch);
 echo $output;

它给了我这个错误:

系统。InvalidOperationException:请求格式无效:text/xml。

http://webservicehandler . coreprocessrequest () 在这方面我还是个新手。所以别对我太苛刻:)谢谢。

看起来您发送的内容为text/xml,这不是它想要的。查找此web服务的文档(例如WSDL文档),并找出它接受的数据格式。

确保它不是真的说它将在XML中响应,在接收到作为标准HTML POST变量的请求后。

HTTP POST方法有两种主要的内容类型:application/x-www-form-urlencoded和multipart/form-data。

内容类型决定CURLOPT_POSTFIELDS的格式应该是什么。如果您使用默认值,即"application/x-www-form-urlencoded",则可能需要使用build_http_query()来构造url编码的查询字符串。

如果你正在发送非ascii数据,你可以传递一个关联数组,其中包含与字段名和值相匹配的键。使用这种技术将导致请求被发出一个多部分/formdata内容类型。

在这一点上,听起来你的下一步应该是弄清楚API期望哪些字段。

application/x-www-form-urlencoded或multipart/form-data?