Heim  >  Artikel  >  Backend-Entwicklung  >  php 如何发送xml报文

php 如何发送xml报文

WBOY
WBOYOriginal
2016-06-23 14:04:39951Durchsuche

   POST <URL> HTTP/1.0  USER-Agent: <Client Application Name>  Content-Type: application/x-fox  Content-Length: nnnn    <?xml version=”1.0”?>  <?FOX FOXHEADER=”100” VERSION=”100” SECURITY=”NONE” LANG=CHS?>  <FOX>  ...  </FOX>


现在要发送如上格式的xml数据,试过curl但不成功,大家帮帮忙


回复讨论(解决方案)

发到哪?你的代码是如何写的?

CURL是可以的,但是参数设置比较麻烦。这种情况有一些现成的类库实现,提供一个简单的示例

<?phpif( $_SERVER['REQUEST_METHOD'] === 'POST' ){    // 接收    $content = file_get_contents('php://input');    $xml = simplexml_load_string($content);    echo "来自XML接收方的响应\n";    print_r( get_object_vars($xml) );    exit;}// 发送行为$xml = <<<xml<?xml version="1.0"?><FOX><hello>world</hello></FOX>xml;$setting = array(    'http' => array(    'method' => 'POST',    'user_agent' => '<Client Application Name>',    'header' => "Content-type: application/x-www-form-urlencoded",    'content' => $xml    ));$context = stream_context_create($setting);$url = 'http://localhost/'. $_SERVER['REQUEST_URI'];$response = file_get_contents($url, null, $context);echo $response;

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

CURL是可以的,但是参数设置比较麻烦。这种情况有一些现成的类库实现,提供一个简单的示例

PHP code?1234567891011121314151617181920212223242526272829303132
有什么现成的类库?

有用过fsockopen的吗?这个好像可以设置http报头

清明放假了?没人了?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn