在cURL PHP

时间:2019-05-25 22:54:52

标签: php api curl

我正在向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>

这只是一个确认。

我在做什么错了?

Request-Ack

我想获得响应,而是从远程系统获得该确认。在我的在线服务器上的tcpdump上,有时我会看到响应,但是当我回显响应时,它仍未显示在页面上

0 个答案:

没有答案