我正在向API端点发送请求,该端点应该根据我发送的信息返回响应。 我收到了成功的确认,但是我没有得到期望的实际信息。
我的cURL请求在下面的代码上,我尝试更改超时。还检查了tcpdump 在线服务器上:tcpdump具有预期的响应,但仍无法显示在php页面上。
在本地主机上,我使用wireshark跟踪请求和响应,但是在wireshark上,我看不到预期结果,并且在打印响应时也未显示在页面上
NB:响应是XML,看起来应该像这样
$API_endpoint = "http://xxx.xxx.xx.xx:80/api/bill/sigqrequest";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $API_endpoint);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type:application/xml',
'g-Com:default.sp.in',
'g-Code:SP172',
'Content-Length:' . strlen($payload)
));
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$response = curl_exec($ch);
echo $response;
我期望
<BillSubResp>
<BillTrxInf>
<BillId>MC_2019_27</BillId>
<PayCntrNum>0</PayCntrNum>
<TrxSts>GF</TrxSts>
<TrxStsCode>7223;7201</TrxStsCode>
</BillTrxInf>
</BillSubResp>
<Signature>CT3r/yvVSB9dnbD59LNare2nhwWQq2vCtamcMw==</Signature>
我得到
<BillSubReqAck>
<TrxStsCode>7101</TrxStsCode>
</BillSubReqAck>
<Signature>QxabtcSqgr08g</Signature>
这只是一个确认。
我在做什么错了?
我想获得响应,而是从远程系统获得该确认。在我的在线服务器上的tcpdump上,有时我会看到响应,但是当我回显响应时,它仍未显示在页面上