【发布时间】:2016-05-14 22:18:55
【问题描述】:
我有如下 CURL 脚本:
$url= 'https://www.test.com/test.php';
$msg=?p1={1250.feed}&p2={jt2221}&p3={1330}&p4={1234567890}&p5={2016-02-04 20:05:34}&p6={New York};
$url .= $msg;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch);
}
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
var_dump($http_status);
var_dump($result);
完整的字符串 url 和 message ,当我在 Chrome 网络浏览器上复制/粘贴时,远程 PHP 文件接收良好。当 PHP 脚本发送的相同 url+消息不起作用时。我想问题首先是远程域是 HTTPS ,其次是大括号和空格干扰了 CURL 请求。我尝试了 urlencode($msg) 函数然后得到了 Error 404 。成功发送消息后,远程 PHP 返回 {"Code":null,"Msg":"."} 作为 ACK
【问题讨论】:
-
尝试将标志
CURLOPT_SSL_VERIFYPEER关闭为false,并添加一个浏览器代理以及CURLOPT_USERAGENT,只需在网上搜索它就可以得到这两个没有问题 -
我添加了这些行: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36');我现在收到错误请求 HTTP 错误 400。请求格式错误。