我已经在Stack Overflow上找了很多答案,但就是找不到。
<?php
$data_string = '{
"jsonrpc": "2.0",
"method": "login",
"id": 1,
"params": {
"params": {
"username": "4321",
"password": "1234"
}
}
}';
$ch = curl_init('https://domain.com');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
echo $result;
?>
我没有得到任何回应,尽管它在jQuery和 AJAX 上运行得很好。当我检查Chrome的开发者工具时,方法是GET,这很奇怪,因为我在代码中将其设置为POST。
你知道我哪里做错了吗
5条答案
按热度按时间deikduxw1#
尝试使用JSON字符串作为请求主体发出GET请求:
uxh89sit2#
您是否能够看到接收端的参数是什么样子的?
对于新手的回答--它是否与您传递postfield的方式有关?通常postfield参数需要key值数组或urlencoded字符串(key 1 = val 1 &)。如果没有JSON($data_string)“value”的“key”,服务器是否知道如何接受postfield?您可以尝试以下方法吗?
祝你好运
x8goxv8g3#
我知道这个问题已经2年了,但它仍然得到了很多意见。
这看起来像是SSL问题。您可以尝试:
欲了解更多信息,请阅读:http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/
j5fpnvbx4#
尝试此功能
kiayqfof5#
曲线后字段:必须像这样“a=1111&b=2222”