【问题标题】:Try check the output of the array sent by GET request尝试检查 GET 请求发送的数组的输出
【发布时间】:2018-06-11 09:45:04
【问题描述】:
private $api_url= "www.myurl.com";
  private $api_key = "111abjkbjkvsdf3879";

private function getpage($url, $redirect=FALSE) {
  $url = $this->purge_url($url);
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
**/*Output the value of the array NULL NULL*/**
  $p_result = curl_exec($ch);
  $array = json_decode(trim($p_result), TRUE);
  var_dump($array);

  if ($redirect)  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

 if (!$page=curl_exec($ch)) {
      $this->add_error("Remote GET connection to $url failed: ".curl_error($ch)); 
      curl_close($ch);
            return false;

  }
  curl_close($ch);

  $this->xmlsource = $page;

  return $page;
    } 

在var_dump($array)中输出数组的值为:NULL NULL 在我的情况下,NULL 是值还是我在检索值的方式上犯了任何错误?我尝试发送 APIkey 请求。

【问题讨论】:

  • curl 请求的响应是什么?你得到空值是因为它不是有效的 json。
  • 好的,谢谢,但是如何检查我的 GET 请求发送的内容是什么?
  • 检查$p_resultvar_dump
  • $p_result, var_dump - NULL NULL
  • 您没有发出正确的请求或服务器没有响应有效的 json 响应

标签: php api get xmlhttprequest php-curl


【解决方案1】:

如果您从 var_export 得到的实际上是一个包含两个值 null 的数组,那么这对应于对 JSON [null, null] 的成功解码。

看这个例子:

<?php
$encoded = "[null, null]";

$decoded = json_decode( $encoded, true );

var_export( $decoded );

输出:

array (
  0 => NULL,
  1 => NULL,
)

如果这不是您所期望的,那么您需要对 GET 请求进行更正。

您可以通过检查传递给 curl

$url 来检查它

如果您想在解码之前检查响应的实际内容,请使用var_export( $p_result );

【讨论】:

  • $p_result = curl_exec($ch); var_export($p_result);接收NULL NULL
  • var_export 不能 输出 NULL NULL。要么是字符串"NULL NULL",要么你在代码中调用var_export 两次。请更具体。
  • 您知道如何检查请求是否已发送吗?会在同一台服务器上做第二个文件并尝试接收请求吗?当我使用 API KEY 发送 GET 请求时,我会收到来自服务器的响应,以及另一个数字,我该如何保存这个返回链接?
  • curl_exec 在失败时返回false 所以if( $p_result === false ) { /* request failed / not sent */ }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 2011-08-31
  • 2017-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多