php 如何发送xml报文
<br /> POST HTTP/1.0<br /> USER-Agent: <br /> Content-Type: application/x-fox<br /> Content-Length: nnnn <br /> <?xml version=”1.0”?><br /> <?FOX FOXHEADER=”100” VERSION=”100” SECURITY=”NONE” LANG=CHS?><br /> <br /> ...<br />
现在要发送如上格式的xml数据,试过curl但不成功,大家帮帮忙
——解决方案——————–
CURL是可以的,但是参数设置比较麻烦。这种情况有一些现成的类库实现,提供一个简单的示例
<?php<br /><br />if( $_SERVER['REQUEST_METHOD'] === 'POST' ){<br /> // 接收<br /> $content = file_get_contents('php://input');<br /> $xml = simplexml_load_string($content);<br /> echo "来自XML接收方的响应\n";<br /> print_r( get_object_vars($xml) );<br /> exit;<br />}<br /><br />// 发送行为<br />$xml = <<<xml<br /><?xml version="1.0"?><br /><br />world<br /><br />xml;<br /><br />$setting = array(<br /> 'http' => array(<br /> 'method' => 'POST',<br /> 'user_agent' => '',<br /> 'header' => "Content-type: application/x-www-form-urlencoded",<br /> 'content' => $xml<br /> )<br />);<br />$context = stream_context_create($setting);<br />$url = 'http://localhost/'. $_SERVER['REQUEST_URI'];<br />$response = file_get_contents($url, null, $context);<br /><br />echo $response;
需要说明你的HTTP请求示例中,请求内容实体2本文来源gaodaima#com搞(代@码$网6
搞gaodaima代码
与报头需要相隔两组\r\n。另外你的XML文件格式不正确,而且标签属性里还包含全角符号