请查看以下代码:
$url='https://www.test.com/test.php';
$post='?field1=1&field2=2&filed3'; // no need array text as is
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_exec ($ch);
curl_close ($ch)
应该是简单的代码,我用作参考http://curl.haxx.se/libcurl/php/examples/simplepost.html
我通过替换变量来修改代码。
我需要将数据发送到属于第三方的远程服务器。另一方的服务器有数据库。当我手动将www.test.com/test.php?field1=1&field2=2&filed3
复制到网络浏览器中时,数据保存到其他服务器的数据库中,并在浏览器屏幕上响应{"Code":15,"Msg":null"}
,这意味着数据已正确发送。当尝试通过PHP脚本发送时,未保存在远程数据库中的数据也没有得到响应消息。
答案 0 :(得分:0)
如果请求在您将其输入网络浏览器时有效,则可能是GET
而不是POST
请求。这样做的一个简单示例如下:
$url= 'http://www.test.com/test.php?field1=1&field2=2&filed3';
$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);
我还设置了CURLOPT_RETURNTRANSFER
选项,以便您可以在$result
中捕获回复。