所以我需要构建一个接收xml请求的应用程序,基于此我将不得不返回响应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;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 接收方的代码是什么?我如何捕获传入的请求?谢谢.
Jor*_*dan 33
一般的想法是读取POST值,将其解析为XML,对其做出业务决策,根据您决定的API构建XML响应,并将其写入响应.
读入POST值:
$dataPOST = trim(file_get_contents('php://input'));
Run Code Online (Sandbox Code Playgroud)
解析为XML:
$xmlData = simplexml_load_string($dataPOST);
Run Code Online (Sandbox Code Playgroud)
然后,您可以构建一个XML字符串(或文档树,如果您愿意),并将其打印到响应中.print()或echo()会很好.
| 归档时间: |
|
| 查看次数: |
35850 次 |
| 最近记录: |