2012-02-21 128 views
11

因此,我需要建立一个应用程序,将接收XML请求,并基于此,我将不得不返回响应XML。我知道如何发送请求并收到回复,但我从来没有以其他方式做过。我会发送这样的请求:如何接收XML请求并在PHP中发送响应XML?

private function sendRequest($requestXML) 
{ 
    $server = 'http://www.something.com/myapp'; 
    $headers = array(
    "Content-type: text/xml" 
    ,"Content-length: ".strlen($requestXML) 
    ,"Connection: close" 
    ); 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $server); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 100); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXML); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    $data = curl_exec($ch); 



    if(curl_errno($ch)){ 
     print curl_error($ch); 
     echo " something went wrong..... try later"; 
    }else{ 
     curl_close($ch); 
    } 

    return $data; 

} 

我的问题是 - 什么是接收端的代码?我如何捕获传入的请求? 谢谢。

回答

29

总体思路是读取POST值,将其解析为XML,对其做出业务决策,根据您决定的API构建XML响应,并将其写入响应中。

阅读在POST值:

$dataPOST = trim(file_get_contents('php://input')); 

解析为XML:

$xmlData = simplexml_load_string($dataPOST); 

然后,你就打造出了一个XML字符串(或文档树,如果你愿意的话),并打印出来直到回应。 print()或echo()会很好。

+0

顶尖的解决方案。 – Matth3w 2015-11-09 22:56:03

相关问题