2017-01-04 75 views
0

我做了一個使用Mobile.de API的腳本。 它在他們的測試環境中工作得很好,與實時環境只有代理不同。所以在我的cURL中,我刪除了代理。 對於任何POST調用,這工作得很好,但對於我的PUT調用它根本不起作用。PHP cURL放,不允許(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禁止。 '您無權訪問此服務器上的/ seller-api/sellers/123/ads/456。「

我已經打印出捲曲信息,看到所有的標題都在那裏,一切似乎都很好,但爲什麼我沒有權限。

已聯繫Mobile.de,但他們說這是我的代碼中的東西。

+1

您可以嘗試將此添加到您的curl請求:'curl_setopt($ ch,CURLOPT_HTTPAUTH,CURLAUTH_ANY);' – Hatef

+0

不起作用。如果我使它成爲一個POST它工作正常。標題似乎也很好。 –

回答

0

所以經過多次調試後,我發現這是$ voertuig_id後的一個空格,它給我一個403禁止的錯誤。 :S