2017-01-04 41 views
0

Mobile.de APIを使用するスクリプトを作成しました。 テスト環境で正常に動作しましたが、ライブ環境との違いはプロキシだけです。だから私のcURLでは、私はプロキシを削除しました。 POST呼び出しの場合、これはうまく動作しますが、PUT呼び出しではまったく動作しません。PHP cURL Put、許可なし(403禁止)

PUT /売り手-API /販売/ 123 /広告/ 456
ホスト::services.mobile.de
のContent-Type:

それでは、私は、例えば郵便配達で、次を送ったとしましょうアプリケーション/ vnd.de.mobile.api + JSON
認証:基本abcdef12345 =

そして、私は右のJSONに入れ、それだけで正常に動作します。
そして、この私がPHPで使用するスクリプトです:

function updateVehicle($seller, $voertuig_id, $json) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 'https://services.mobile.de/seller-api/sellers/' . $seller . '/ads/' . $voertuig_id); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json); 
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); 
    curl_setopt($ch, CURLOPT_USERPWD, USERNAME . ':' . PASSWORD); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'Host: services.mobile.de', 
     'Content-type: application/vnd.de.mobile.api+json' 
    )); 

    $output = curl_exec($ch); 

    curl_close($ch); 

    return $output; 
} 

引き換えに、私は403を禁じ得ます。 'このサーバーの/ api/sellers/123/ads/456にアクセスする権限がありません。'

私はすでにカール情報を印刷しており、すべてのヘッダーがそこにあり、すべてがうまくいくように見えましたが、どうして私に許可がないのですか?

Mobile.deに既に連絡がありましたが、私のコードには何か言われています。

+1

これをあなたのカール要求に追加してみてください: 'curl_setopt($ ch、CURLOPT_HTTPAUTH、CURLAUTH_ANY);' – Hatef

+0

動作しません。私はそれを正常に動作するPOSTにする場合。ヘッダーもうまくいくようです。 –

答えて

0

多くのデバッグの後、$ voertuig_idの後に空白があり、403の禁止されたエラーが出ています。 :S

関連する問題