2017-01-04 71 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