@Viktor091

Сервер возвращает 400 Bad request при запросе cURL POST на тот же хостинг. В чем может быть проблема?

Проблема вот в чем:
Отправляю POST запрос cURL-ом, на другой стороне PHP скрипт принимает запрос и согласно переданным данным в HEADER-е выполняет определенные действия, выдавая ответ.
До сегодняшнего дня все прекрасно работало, проблем не было. Теперь - беда.
Запускаю этот скрипт с локалки (Open Server) - все работает, запускаю с сервера - выдает 400 Bad request.
Может быть важно, на сервере два аккаунта, но в одном личном кабинете. Запрос идет от одного к другому.
Код:
$headers = array(
		"purpose: har_top_index"
	);
	$ch = curl_init('<абсолютный путь к файлу>');
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	$result = curl_exec($ch);
	curl_close($ch);
	$result = json_decode($result, true);

Подскажите пожалуйста, что делаю не так? Или все же это сервер тупит?
  • Вопрос задан
  • 1670 просмотров
Решения вопроса 1
@Viktor091 Автор вопроса
С проблемой разобрался!!!
Дело действительно в отсутствии тела запроса. При пустом теле запроса сервер автоматически присваивает заголовок "Content-Length: -1" и именно поэтому запрос считается "Bad request" и сервер возвращает "400".
Решение:
Либо добавить в тело запроса какие-то данные, либо добавить заголовок "Content-Length: 0" и запрос будет выполняться!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы