【问题标题】:PHP: Working with JSON API and GETPHP:使用 JSON API 和 GET
【发布时间】:2015-08-12 13:37:01
【问题描述】:

我正在尝试使用我不熟悉的 API。到目前为止,我发送和检索数据的努力都失败了,我希望你能帮助我。

以下是我正在使用的 API 的基础知识:

  1. 我有一个 API 密钥,必须在每个请求的 HTTP 授权标头中提供该密钥。格式应为:

    身份验证:Token token=MyApiKey

  2. 我需要对这个特定请求使用 GET

  3. 我需要传递的参数是:

    { '东西': {'thing1':0, 'thing2':1} }

我正在使用 PHP 和 curl。我尝试了很多变化,但没有任何成功。基本上,我不确定如何获取我的变量值并以正确的格式传递它们。

到目前为止,这是我一直在尝试做的事情:

$token='myApiKey';

$myThings = "{ 'things': { 'thing1':0, 'thing2':1 } } ";

$url = 'http://myapiurl?' . $myThings;

$session = curl_init($url);
curl_setopt ($session, CURLOPT_HTTPHEADER, array('Authentication: Token token=' . $token . ', Content-Type:application/json'));
curl_setopt ($session, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($session, CURLOPT_HTTPGET, true);
curl_setopt ($session, CURLOPT_TIMEOUT, '3');

$response = curl_exec($session);

谁能解释如何以 API 可以理解的方式提交我的值?

【问题讨论】:

  • 了解您编写的代码中没有传递任何数据的 API 可能很有用
  • 既然是 GET,我想我需要在 URL 中包含我想要传递的所有数据。那就是我不确定如何处理 json 的地方,因为 URL 参数通常是 var=1&var2=2 等

标签: php json curl


【解决方案1】:

您好,也许您可​​以使用 http_build_query 为您编码:

$url = 'http://myapiurl?' . http_build_query($answers);

文档是HERE

【讨论】:

    【解决方案2】:

    这不是一个 JSON API,您可以在其中输入普通的 GET 参数并获得 JSON 响应吗?所以在你的例子中:

    $url = 'http://myapiurl?'.http_build_query(json_decode($myThings));
    

    如果没有,您将正常发布您的 JSON。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 1970-01-01
      • 2016-10-18
      • 2022-01-07
      • 1970-01-01
      相关资源
      最近更新 更多