Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中使用CURL从api检索数据_Php_Json_Api_Curl - Fatal编程技术网

在php中使用CURL从api检索数据

在php中使用CURL从api检索数据,php,json,api,curl,Php,Json,Api,Curl,我有一个api链接,它在终端上运行良好。我希望使用相同的api链接在php中使用CURL检索数据。我尝试了以下代码: 但我得到的回应是: 旋度响应为: {“error”:“JSON语法错误:格式错误的JSON字符串,既不是数组、对象、数字、字符串也不是原子,位于/usr/share/perl5/JSON.pm第171行的字符偏移量0(在\“(字符串结尾)\”之前)。\n”} 我是新来指导我解决问题的人。添加: curl_setopt($ch, CURLOPT_POSTFIELDS, "{}"

我有一个api链接,它在终端上运行良好。我希望使用相同的api链接在php中使用CURL检索数据。我尝试了以下代码:


但我得到的回应是:

旋度响应为: {“error”:“JSON语法错误:格式错误的JSON字符串,既不是数组、对象、数字、字符串也不是原子,位于/usr/share/perl5/JSON.pm第171行的字符偏移量0(在\“(字符串结尾)\”之前)。\n”}

我是新来指导我解决问题的人。

添加:

curl_setopt($ch, CURLOPT_POSTFIELDS, "{}");
因此,发送一个空JSON对象作为参数。这是PHP的等价物

-d "{}"
从命令行

要将其他数组放入post数据中,请使用
json\u encode

$data = array('userId' => array(), 
              'user_list' => array("1", "2", "3", "4", "5", "6", "7", "8")
             );
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data);

您需要通过删除
curl\u setopt($ch,CURLOPT\u POST,true)将方法设置为“GET”

或者提供有效的JSON
curl_setopt($curl,CURLOPT_POSTFIELDS,“{}”)

您没有
CURLOPT_POSTFIELDS
选项来发送参数。我不想发送任何参数,我只是想检索数据。API需要JSON格式的参数。可能您需要发送一个空数组或对象;我收到错误404您能显示运行正常的命令行版本吗?我如何将此输入格式“array[{\n\tinteger:userID;\n}]user\u list\n”添加为CURL\u POSTFIELDS?使用
json\u encode
将PHP数组转换为json。请看更新后的答案。你能举个例子吗?curl-v-H“Content-Type:application/json”-X POST-d“{”userID\:[],“user\u list\”:[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”]}”现在如何设置curl-POST-fields???只需创建一个包含所需数据的PHP数组,并调用
json\u encode()
。我已经更新了答案以匹配这些数据。