具有授权的cURL POST请求

时间:2019-03-08 02:38:00

标签: php curl

我正在尝试使用cURL POST从端点获取一些数据:

文档说明如何验证和获取数据:

“ ......结合使用OAuth2 grant_types和JWT令牌

要授权,请使用以下代码:

curl -X POST \
  'http://api.example.com/v1/api/auth/login?grant_type=client_id' \
  -H 'Authorization: Basic cHVibGljX2tleTpwddl2YXRJX2xleQzd'

基于上面的信息,我为请求构建了以下代码:

$handle = curl_init('http://api.example.com/v1/api/auth/login? 
grant_type=client_id');
$header = array();
$header[] = 'Content-Type: application/json';
$header[] = 'Authorization: Basic DdJfd1Bxx2NxMkYwNjzzdl9mejJZIFKVQlBc';
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $header);
$resp = curl_exec($handle);

var_dump($resp);

当我执行代码时,它会无限循环运行,最终超时。

代码格式是否正确,或者我提供的授权密钥是否有问题?密钥是Base64表示形式。

谢谢!

更新:我也尝试了以下方法:

$header[] = 'Content-Type: application/json';
$header[] = 'Authorization: Basic adfsidfosfosfodsofs';
$content = "grant_type=client_id";

$curl = curl_init();

curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_POSTFIELDS, $content);

1 个答案:

答案 0 :(得分:0)

也许试试看:

$handle = curl_init('http://api.example.com/v1/api/auth/login?grant_type=client_id');
$header = array();
$header[] = 'Content-Type: application/json';
$header[] = 'Authorization: Basic DdJfd1Bxx2NxMkYwNjzzdl9mejJZIFKVQlBc';
curl_setopt($handle, CURLOPT_HTTPHEADER, $header);
$resp = curl_exec($handle);
var_dump(curl_error($handle));