如何将cURL转换为Guzzle GET



首先:Stack Overflow中的第一个问题,非常荣幸!:D

如何将以下卷曲转换为Guzzle?

curl -u USER_KEY:USER_SECRET https://api.apiexample.com/example/oauth/oauth?grant_type=client_credentials

我尝试了以下操作,但我一直得到403-禁止的错误:

$res = $client->request('GET', 'https://api.apiexample.com/example/oauth/oauth',[
'auth' => ['USER_KEY', 'USER_SECRET'],
'header' => [
'Content-Type' => 'application/x-www-form-urlencoded'
],
'form_params' => [
'grant_type' => 'client_credentials'
]
]);

我的代码可能出了什么问题?

编辑:忘记了一件事:这个请求返回一个持续30分钟的令牌。只有在令牌即将过期时才能运行此函数,有什么建议吗?

我建议您可以通过在Client对象声明中放入常数值并将request封装在try-catch块中来重新格式化请求。try-catch块提供了额外的好处,它将帮助您调试响应。您可以随意更改catch语句。

$client = new Client([
'base_uri' => 'https://api.apiexample.com/example/',
'auth' => [
'USER_KEY',
'USER_SECRET'
]
]);
try {
$response = $client->request( 'GET', 'oauth/oauth', [
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded',
],
'form_params' => [
'grant_type' => 'client_credentials'
]
]);
} catch (Exception $e) {
error_log($e->getCode());
error_log($e->getMessage());
error_log(print_r($e->getTrace(), true));
}

最新更新