我刚刚从3.1更新了Cake到3.3并且似乎打破了我http Clients
的部分内容。
问题似乎出现在没有特定Content-Type
集的任何请求上。
例如,我正在执行此请求:
curl -X GET -H "Authorization: Bearer kEnG562yz5bhE9igXf2YTcZ2bu0z" "https://developer.api.autodesk.com/project/v1/hubs"
使用以下http Client
:
$http = new Client([
'headers' => [
'Authorization' => 'Bearer ' . $token->token
]
]);
$response = $http->get('https://developer.api.autodesk.com/project/v1/hubs');
使用Cake\Network\Http\Client
在我的登台服务器上工作正常,但在我使用Cake\Http\Client
的新更新的本地服务器上,我得到:
object(Cake\Http\Client\Response) {
[protected] code => '415'
[protected] reasonPhrase => 'Unsupported Media Type'
Content-Type
的任何请求似乎都没有问题。
$http = new Client(['headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $token->token
]
]);
在两台服务器上都能正常工作。
我很确定这是Content-Type
阻止我,我已经尝试了一些,但我真的在黑暗中刺伤。
任何人都可以告诉我Cake\Network\Http\Client
默认使用的内容类型,或者我应该用什么内容类型发送这样一个简单的请求。
由于
答案 0 :(得分:0)
由于这是一个GET请求,因此不需要内容类型。
在./vendor/cakephp/cakephp/src/Network/Http/Client.php中的CakePHP 3.3之前,您可以看到内容类型仅设置为默认值(' application / x-www-form) -urlencoded')其中存在一串数据,因此在这种情况下它不会被设置。
如果它正在使用application / json我会使用它来滚动并检查autodesk以查看api对此请求期望的内容类型。