PHP cURL无法向api发送POST请求

问题描述 投票:1回答:2

我正在尝试将发送请求发送到SMS api并使用PHP和cURL从他们那里收到反馈。但是,当我尝试通过表单发送相同的数据时,cURL对我不起作用。

$POST = array(
            'data' => $xml1

    );
$url = 'URL';
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $POST );
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
$result = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
echo "<input type=\"textarea\" id=\"txt\"  style='width:600px' value='$result'></input>";
echo "<input type=\"textarea\" id=\"txt1\" name='data1' style='width:600px' value='".$info['request_header']."'></input>";

而XML则是

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE MESSAGE SYSTEM "http://127.0.0.1:80/psms/dtd/messagev12.dtd">
<MESSAGE VER="1.2">
<USER USERNAME="abc" PASSWORD="pqr" />
<SMS UDH="0" CODING="1" TEXT="SMS TEXT" PROPERTY="0" ID="1" TEMPLATE="" EMAILTEXT="" ATTACHMENT=""><ADDRESS FROM="someone" TO="91xxxxxxxxxx" EMAIL="" SEQ="1" TAG="some clientside random data"/>
</SMS>
</MESSAGE>

但使用表单工作精细,代码表格

echo "<form action=\"URL\" method=\"POST\" target=\"_blank\">";

    echo "<input type=\"textarea\" id=\"txt\" name='data' style='width:600px' value='$xml1'></input>";
    echo "<input type=\"SUBMIT\" name=\"action\" value=\"send\">";
    echo "</form>";

当我使用表单发送数据时,它显示已发送状态,但是当我使用curl发送时,它显示输出为:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <MESSAGEACK>
    <Err Code="65535" Desc="The Specified message does not conform to DTD"/>
</MESSAGEACK> 

谢谢

php api curl post
2个回答
1
投票

而不是创建数组。

$POST = array('data' => $xml1);

只需做$POST => $xml1


0
投票

你是如何设置$xml1变量的?

确保使用qazxsw poi而不是qazxsw poi

© www.soinside.com 2019 - 2024. All rights reserved.