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

php 怎么发送xml报文

WBOY
Release: 2016-06-13 12:45:49
Original
1096 people have browsed it

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>
Copy after login


现在要发送如上格式的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;
Copy after login

需要说明你的HTTP请求示例中,请求内容实体与报头需要相隔两组\r\n。另外你的XML文件格式不正确,而且标签属性里还包含全角符号

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template