[英]GET request via CURL in PHP
我有如下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)
函數,然后得到錯誤404。 成功發送消息后,遠程PHP返回{"Code":null,"Msg":"."}
作為ACK。
如果您使用的是urlencode
,則只想編碼值,而不是整個查詢字符串。 一種有效的方法(並將查詢數據保持在整齊的數組中)是使用http_build_query
:
$url= 'https://www.test.com/test.php?';
$data = array('p1' => '{1250.feed}',
'p2' => '{jt2221}',
'p3' => '{1330}',
'p4' => '{1234567890}',
'p5' => '{2016-02-04 20:05:34}',
'p6' => '{New York}',);
$msg = http_build_query($data);
$url .= $msg;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.