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に既に連絡がありましたが、私のコードには何か言われています。
これをあなたのカール要求に追加してみてください: 'curl_setopt($ ch、CURLOPT_HTTPAUTH、CURLAUTH_ANY);' – Hatef
動作しません。私はそれを正常に動作するPOSTにする場合。ヘッダーもうまくいくようです。 –