【问题标题】:Send Headers during a curl call在 curl 调用期间发送标头
【发布时间】:2016-02-06 16:58:24
【问题描述】:

您好,我必须向 api(pitney bowls 地理位置)发送请求,我需要来自站点的访问令牌。在网站上,它被称为 - 要获取访问令牌,请设置标头和请求正文并调用令牌 URI:

Authorization: Basic {BASE64 ENCODED VALUE} 
Content-Type: application/x-www-form-urlencoded 
POST https://api.pitneybowes.com/oauth/token
grant_type=client_credentials 

我目前正在使用以下代码:-

$val= base64_encode ('{gR6Ov7fCmuzHcVXE6bsmcUOt3SXhmXlL}:{ud61in4FYSGyF0eU}');
 $ch = curl_init();
$headr = array();
$headr[] = 'Authorization: Basic {'.$val.'}';
$headr[] = 'Content-Type: application/x-www-form-urlencoded';
$headr[]='grant_type=client_credentials';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headr);
curl_setopt($ch, CURLOPT_URL, "https://api.pitneybowes.com/oauth/token");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);

curl_close($ch);

但是没有得到任何结果。知道可能出了什么问题吗?

【问题讨论】:

  • 只有前 2 个似乎是有效的标头设置。
  • @jeroen- 即使我这么认为。然而,在 api 中,它写了 - 要获取访问令牌,请设置标头和请求正文并调用令牌 URI:。那么我该如何在请求正文或任何地方设置grant_type
  • @jeroen - 抱歉,如果这是一个愚蠢的问题,但我之前没有使用过 curl...
  • 我认为是CURLOPT_POSTFIELDS
  • 嘿@jeroen - 它工作.. 非常感谢!!!很多... :)

标签: php html curl


【解决方案1】:

您要添加的第三个标头不是有效标头。

您可能应该将其添加为 POST 键值对:

curl_setopt($ch, CURLOPT_POSTFIELDS, 'grant_type=client_credentials');

【讨论】:

  • 是的,我在您的评论的帮助下做到了这一点。谢谢@jeroen
猜你喜欢
  • 1970-01-01
  • 2012-01-13
  • 2012-11-26
  • 2010-09-26
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-22
相关资源
最近更新 更多