Home  >  Article  >  Backend Development  >  php 怎么发送xml报文

php 怎么发送xml报文

WBOY
WBOYOriginal
2016-06-13 12:45:491038browse

php 如何发送xml报文

<br />
   POST <URL> HTTP/1.0<br />
  USER-Agent: <Client Application Name><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 />
  <FOX><br />
  ...<br />
  </FOX>


现在要发送如上格式的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 />
<FOX><br />
<hello>world</hello><br />
</FOX><br />
xml;<br />
<br />
$setting = array(<br />
    'http' => array(<br />
    'method' => 'POST',<br />
    'user_agent' => '<Client Application Name>',<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请求示例中,请求内容实体与报头需要相隔两组\r\n。另外你的XML文件格式不正确,而且标签属性里还包含全角符号
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn