我正在尝试与 infojobs-api 建立连接,文档解释了如何以这种方式进行连接:
获取 /api/1/应用程序 HTTP/1.1
主办: api.infojobs.net
授权:基本QWxhZGRpbjpvcGVuIHNlc2FtZQ==,承载07d18fac-77ea-461f-9bfe-a5e9d98deb3d
(https://developer.infojobs.net/documentation/user-oauth2/index.xhtml https://developer.infojobs.net/documentation/user-oauth2/index.xhtml)
这是我的代码:
$basicauth = new Client(['base_uri' => 'https://api.infojobs.net']);
$credentials = base64_encode(CLIENT_ID .':' . CLIENT_SECRET ) ;
$newresponse = $basicauth->request(
'GET',
'api/1/curriculum',
['debug' => true],
['auth' =>
['Basic', $credentials] ,
['Bearer', $acceso->access_token]
]
)->getBody()->getContents();
d($newresponse);
API/Guzlle 给我返回这个错误:
致命错误:未捕获的 GuzzleHttp\Exception\ClientException:客户端错误:GET https://api.infojobs.net/api/1/curriculum
导致了401 No Autorizado
回复:
{“error”:“102”,“error_description”:“客户端凭据无效”,“timestamp”:“2016-06-25T14:08:54.774Z”}
在 /app/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:107
所以我做错了什么,但我不知道哪里错了。
任何想法,谢谢。
Oskar
正如我所看到的,您的请求的 HTTP 标头:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==,Bearer 07d18fac-77ea-461f-9bfe-a5e9d98deb3d
你有一个Authorization
包含逗号分隔值的标头。他们彼此并不分离。所以你不能从 Guzzle 中受益auth
关键就像你所做的那样。
您应该做的是手动设置授权标头:
$newresponse = $basicauth->request(
'GET',
'api/1/curriculum',
['debug' => true],
['headers' =>
[
'Authorization' => "Basic {$credentials},Bearer {$acceso->access_token}"
]
]
)->getBody()->getContents();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)