Invalid content length что за ошибка
Перейти к содержимому

Invalid content length что за ошибка

  • автор:

Как понять в чем ошибка?

При подключению к сайту выдает — HTTP/1.1 500 Internal Server Error Server: nginx Date: Thu, 20 Apr 2022 06:00:10 GMT Content-Type: text/html Content-Length: 186 Connection: close Как понять из-за чего сайт дропает ? Пытался изменять заголовки, менял прокси — результат один выдает. На сайте идет загрузка(заглушка) и потом перенаправляет на главную сайта, я так понимаю идут проверки на заглушке и выбор сервера. Пытался подставить куки — тоже не дало результата. На сайте есть js, но вроде при прогрузке страниц только тянет js файлы. Так же сайт отвечает заголовками если через браузер смотреть:

x-content-type-options nosniff X-Content-Type-Options nosniff x-frame-options DENY X-Frame-Options DENY X-Xss-Protection 1; mode=block 

а остальные стандартные вроде заголовки в ответе
Отслеживать
rolling bl
задан 21 апр 2022 в 6:52
rolling bl rolling bl
11 3 3 бронзовых знака

если есть доступ к сайту то идти смотреть логи. если нет, и вы пытаетесь сделать некий парсер, то аккуратно эмулировать запрос, скорее всего дело в передаваемых параметрах или теле запроса

21 апр 2022 в 7:04

Да, парсинг сайта. В этом и сложность, попробовал заголовки взять которые браузер отправляет и смена айпи — тот-же результат. На сайте идет загрузка изначально заглушка обычная(я так понимаю выбор сервера), а потом уже грузится сайт, но вроде никуда не перенаправляет, а просто редерикт так-же на главную на этой же странице. Пробовал брать уже с куками тоже самое.

21 апр 2022 в 8:28

Как вам уже сказали — это серверная ошибка. Если сайт не ваш — то никак, нет доступа к его логам — тем более.

Почему возникает ошибка при отправлении формы заявки на e-mail?

Создал ajax форму заявки. Всё работает корректно, за исключением двух маленьких деталей.
1) На e-mail номер телефона приходит без знака «+» перед цифрой «7».
2) При отправке формы Chrome выдаёт в консоль 2 ошибки: Refused to set unsafe header «Content-length» и Refused to set unsafe header «Connection».
Форма при этом нормально отправляется. Подскажите, пожалуйста, как с этими проблемами бороться.

Вот php код, но он верно работает:
$recepient = «terehina-m@mail.ru»;
$sitename = «Музей Впечатлений»;
$name1 = trim($_POST[«name1»]);
$phone = trim($_POST[«phone»]);
if (isset($name1) ) $name1 = stripslashes($name1);
$name1 = htmlspecialchars($name1);
>
if (isset($phone) ) $phone = stripslashes($phone);
$phone = htmlspecialchars($phone);
>
$message = «Имя: $name1 \r\nНомер телефона: $phone»;
$pagetitle = «Вам пришла новая заявка с сайта \»$sitename\»»;
mail($recepient, $pagetitle, $message, «Content-type: text/plain; charset=\»utf-8\»\n From: $recepient»);
?>

  • Вопрос задан более трёх лет назад
  • 100 просмотров

Комментировать
Решения вопроса 1

1) На e-mail номер телефона приходит без знака «+» перед цифрой «7».

params.push(elems[i].name + '=' + encodeURIComponent(elems[i].value));

2) При отправке формы Chrome выдаёт в консоль 2 ошибки: Refused to set unsafe header «Content-length» и Refused to set unsafe header «Connection».

Почему приходит ошибка 400?

Bad Request — Invalid Content Length
HTTP Error 400. There is an invalid content length or chunk length in the request.

Также пробовал раскомментировать все строки + в разной последовательности, но ошибка такая же.

Помогите, пожалуйста, решить проблему.

  • Вопрос задан более трёх лет назад
  • 217 просмотров

8 комментариев

Простой 8 комментариев

Так а что за ошибка-то?
И какое АПИ? Может быть логин и пароль надо в теле запроса посылать, а не в заголовках?

ImpAnonym

Lorem Ipsum @ImpAnonym Автор вопроса

Илья С, ошибка заключается в том, что строка запроса слишком длинная? В описании в интернете написано, что сервер ожидает другую строку.
Про API не знаю. Как узнать?

ImpAnonym

Lorem Ipsum @ImpAnonym Автор вопроса

5fb5349e9c195277026930.png

Илья С, может тут что есть?

ImpAnonym

Lorem Ipsum @ImpAnonym Автор вопроса
Антон, я ничего не могу делать с 1С сервером.

Lorem Ipsum, ну у вас же должна быть документация, где описано в каком формате должен быть запрос авторизации.
Почему вы решили делать через CURLOPT_USERPWD? Это Http Basic авторизация.
И почему вы посылаете пустой POST-запрос? Т.е. без тела (CURLOPT_POSTFIELDS).

ImpAnonym

Lorem Ipsum @ImpAnonym Автор вопроса

5fb5350e41396146117778.png

Антон, вот ещё часть

Prilepsky

Попробуй вот так:

$curl = curl_init('http://1c/dev_bpms/'); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($curl, CURLOPT_USERPWD, $username . ":" . $password); curl_setopt($curl, CURLOPT_URL, 'http://1c/dev_bpms/hs/BPMS/Run'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_POSTFIELDS, NULL);

И попроси 1сника проверить доступность и работоспособность сервиса вообще.
У IIS должна быть включена анонимная авторизация + при публикации базы 1с не должно быть галочки «Использовать аутентификацию операционной системы»

cURL error 8: Invalid Content-Length: value

I’ve seen the above link, but it doesn’t have any helpful information. I use wamp64 and windows for development. and the following is my code:

use guzzle\http\Client; $headers = [ 'User-agent'=> 'Mozilla/5.0', 'Accept'=> 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Accept-Encoding'=> 'gzip', ]; $client = new Client(); $start_time = time(); $response = $client->request( 'get', 'https://www.google.com', ['headers' => $headers] ); 

EDIT:
It works properly for https://yahoo.com but for http://yahoo.com it raises previous error.
asked Feb 17, 2019 at 7:40
1,373 2 2 gold badges 20 20 silver badges 39 39 bronze badges

2 Answers 2

i suspect your connection is behind a MITM-style intercepting proxy that sends wrong Content-Length headers, but in any case, you can tell curl to ignore Content-Length with the CURLOPT_IGNORE_CONTENT_LENGTH option — unfortunately PHP lacks the constant for CURLOPT_IGNORE_CONTENT_LENGTH , but it’s magic number is 136, meaning you can just do

if(!defined("CURLOPT_IGNORE_CONTENT_LENGTH")) < define("CURLOPT_IGNORE_CONTENT_LENGTH",136); >$response = $client->request( 'get', 'https://www.google.com', ['headers' => $headers, 'curl'=>[CURLOPT_IGNORE_CONTENT_LENGTH=>true]] ); 

(note that this may come with a significant performance penalty, as now curl have to keep reading from the socket until the server closes it, instead of reading until Content-Length bytes have been received, depending on the server configuration, that could be A LOT slower, many servers keep connections open for a socket-reuse scheme. you probably want to add the http header Connection: close while you have to ignore content-length headers.)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *