PHP cURL Put,没有权限(403禁止)

时间:2017-01-04 08:48:52

标签: php api curl

我创建了一个使用Mobile.de API的脚本。 它在他们的测试环境中运行良好,只有与实时环境的区别才是代理。所以在我的cURL中我删除了代理。 对于任何POST调用,这都可以,但是对于我的PUT调用它根本不起作用。

所以让我说我发送了以下内容,例如Postman:

  

PUT / seller-api / sellers / 123 / ads / 456
  主持人:services.mobile.de
  Content-Type:application / 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被禁止。 '您无权访问此服务器上的/ vendor-api / sellers / 123 / ads / 456。'

我已经打印出了al curl info并看到所有标题都在那里,一切似乎都很好,但为什么我没有得到许可。

已联系Mobile.de,但他们说这是我代码中的内容。

1 个答案:

答案 0 :(得分:0)

所以经过多次调试后我发现$ voertuig_id后面有一个空格让我遇到403禁止错误。 :S