Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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 卷曲不';t返回URL中带有变量的所有级别的JSON_Php_Json_Curl - Fatal编程技术网

Php 卷曲不';t返回URL中带有变量的所有级别的JSON

Php 卷曲不';t返回URL中带有变量的所有级别的JSON,php,json,curl,Php,Json,Curl,我正在尝试使用PHP7.1.6的API。当我用硬编码到URL中的API键发送请求时,它返回所有JSON。但是,当我通过变量将API键放入URL时。它只返回JSON的第一级。我尝试将URL设置为变量,然后将变量$URL设置为cURL选项,并尝试使用带双引号和单引号的字符串。还有什么我可以试着让它工作的吗 另外,我知道问题出在实际响应本身,但问题出在json\u decode()上,因为当我查看原始响应时,并不是所有应该存在的json都存在。API键只是字母和数字,当我从调试器将连接的URL复制到P

我正在尝试使用PHP7.1.6的API。当我用硬编码到URL中的API键发送请求时,它返回所有JSON。但是,当我通过变量将API键放入URL时。它只返回JSON的第一级。我尝试将URL设置为变量,然后将变量
$URL
设置为cURL选项,并尝试使用带双引号和单引号的字符串。还有什么我可以试着让它工作的吗

另外,我知道问题出在实际响应本身,但问题出在
json\u decode()
上,因为当我查看原始响应时,并不是所有应该存在的json都存在。API键只是字母和数字,当我从调试器将连接的URL复制到Postman中时,它会正常工作

请求如下:

$curl = curl_init();

  curl_setopt_array($curl, array(
  CURLOPT_URL => '/collection?fields=collection_id,name,description,f_list,modified_at&api_key=' . $api_key,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_COOKIEFILE     => $this->cookie,
  CURLOPT_COOKIEJAR      => $this->cookie,
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

把这个问题分解成几个部分。将连接的URL与字符串中的URL进行比较。我不知道您的API密钥是什么,但请确保您使用的是
url\u encode()
,以便正确地将其转义以在url中使用。无论如何,这个问题与旋度完全无关。可以归结为简单的连接,我有。当我从调试器复制连接的URL并在Postman中运行请求时,它工作得非常好。我已经从Postman为请求复制了cURL代码,但当我将API键作为变量包含时,它不会返回所有级别的JSON。API键只是字母和数字。请重新检查您的假设。如果您已经展示了足够的代码来重现它,我相信我们可以很快指出您的排版错误。问题是字符串的解析,而不是API键。相反,由于它的长度,它是我省略的参数之一。该参数需要格式化为JSON,但我没有转义双引号,而是按照您所说的对其进行编码。