2016-09-19 63 views
1

我剛剛從3.1更新的蛋糕3.3,似乎已經打破我的一些http Clients的。新的HTTP客戶端不正確的Content-Type產生415個錯誤

這個問題似乎是在任何請求而沒有具體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

因爲它是一個GET請求沒有需要的內容類型。

在./vendor/cakephp/cakephp/src/Network/Http/Client.php中的CakePHP 3.3之前,您可以看到內容類型僅設置爲默認值('application/x-www-form-urlencoded ')存在一串數據,所以在這種情況下它不會被設置。

如果它正在與應用/ JSON我會用這個來獲得滾動並與Autodesk檢查,看看有什麼內容類型的API是在該請求期待。

+0

乾杯西蒙我認爲你是對的,它不是'Content-Type',但它不適用於'application/json'。更新前的通話狀態良好。中斷請求的http客戶端發生了一些變化。 –