Я создал интеграцию с логистической компанией для платформы электронной коммерции, и для получения определенных данных о доставке есть запрос 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