cURL-запрос периодически завершается неудачей при конкретном звонке, почтальон работает просто отлично - PullRequest
0 голосов
/ 10 мая 2019

Я создал интеграцию с логистической компанией для платформы электронной коммерции, и для получения определенных данных о доставке есть запрос POST к API. Этот запрос выполняется кодом PHP и использует cURL для выполнения запроса. Это прекрасно работает в 99,9% случаев, что странно в том, что некоторые запросы постоянно терпят неудачу. Эти запросы структурированы аналогично другим и просто приводят к тайм-ауту.

Если я отправлю такой же запрос через Почтальона, я получу желаемый ответ. Логистическая компания предполагает, что ошибка заключается в моей реализации, и я готов к этому. Кто-нибудь может помочь?

$log = new Log('LOG.log');
if($quote['pargo'] == 1){
    //make request to URL - need to get city and postal code from $json
    $url = "[http://requestEndPoint]".$requestString;
    $log->write('API Request= ' . $url);
    $ch = curl_init ($url);

    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    $headers = array(
        "Content-Type:application/json",
        "Authorization: [apiKey]"
    );

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $response = curl_exec($ch);
    $log->write('API Response= ' . json_encode($response));

    if($response){
      $obj = $response;
    }
    else{
      $obj = curl_error($ch);
    }

    curl_close($ch);

    $counter++;
}

На определенные неудачные вызовы ответ, полученный от сервера:

400 Bad Request

Характер запроса - получение информации по заданному адресу в указанном формате (город, страна). Пример рабочего $requestString ниже:

Sandton, Johannesburg, South Africa

Ниже приведен пример, который не работает последовательно с cURL, но работает в Postman

Hermanus Heights, Hermanus, South Africa
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...