Perl: значение кода ответа в HTTP :: Request - PullRequest
2 голосов
/ 15 июня 2010

Итак, я пишу код для получения документа из Интернета. Размер документа составляет около 200 КБ. Это код:

#!/usr/local/bin/perl -w
use strict;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $url = "SOME URL";
my $req = HTTP::Request->new(GET => $url);
my $res = $ua->request($req);

if($res->is_success){
   print $res->content ."\n";
}
else{
  print "Error: " . $res->status_line;
}

Теперь единственная проблема в том, что я не могу упомянуть, что такое URL.

Однако вывод: «Ошибка: 500 тайм-аут чтения». При внешней проверке ссылки данные загружаются менее чем за 5 секунд.

Я даже изменил время ожидания на 1000 с, но оно все равно не сработало. Как мне найти дополнительную информацию, связанную с ответом? Размер файла (около 200 КБ) также недостаточно велик, чтобы оправдать тайм-аут чтения. Сервер также не занят, не вызывал проблем при проверке ссылки в браузере.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 15 июня 2010

Когда сетевые приложения доставляют вам неприятности, отлаживается с помощью Wireshark .

0 голосов
/ 18 мая 2018

Веб-сервер (Apache / nginx) может иметь серверное приложение, написанное на PHP / Python / что угодно.Возможно, этот сервер не отвечает ни на что, поэтому веб-сервер перестает ждать (время ожидания истекло) и отвечает на запрос http: ошибка 5xx (внутренний сервер) .

Один замечательный инструментдля тестирования curl с -v:

curl --verbose --head "SOME URL"
  • --head для получения только заголовка HTTP-ответа.
  • Если с того же хоста в браузере все в порядкечто-то в заголовке вашего http-запроса, которое имеет значение.Вы можете увидеть, что вы отправляете в con browser dev tool и добавить их , чтобы свернуться с -H, --header <header>.При настройке параметров curl веб-сервер не может определить, получен ли http-запрос от веб-браузера, скрипта или чего-либо еще (протоколы волшебны!).
  • Используйте -s (без звука) и 2>&1 для отправка вывода скручивания по трубе на less / head / tail.
0 голосов
/ 15 июня 2010

Убедитесь, что веб-сервер не настроен для отбрасывания запросов от сценариев в этом случае perl.

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