wget “відмови” - закрито fd 3


1

Я заздалегідь вибачаюся за те, що я щільний, але не можу зрозуміти, чому wget "здається". Ось команда, яку я використовую.

wget --debug --tries 1 --read-timeout=900 --timeout=0 http://secure.sample.com/site/test

Ось частина налагодження wget:

--2012-12-13 17:43:19--  http://secure.sample.com/site/test
Resolving secure.sample.com... 100.100.100.100
Caching secure.sample.com => 100.100.100.100
Connecting to secure.sample.com|100.100.100.100|:80... connected.
Created socket 3.
Releasing 0x0000000000e658e0 (new refcount 1).

---request begin---
GET /site/test HTTP/1.0
User-Agent: Wget/1.12 (linux-gnu)
Accept: */*
Host: secure.sample.com
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response... No data received.
Closed fd 3
Giving up.

Я спробував відлуння деяких даних, як це виглядає, як він не бачить відповіді, і я також спробував промивання вихідних буферів (у випадку, якщо дані там просто не послав). Будь-які пропозиції будуть оцінені.

Відповіді:


2

добре, я успішно відтворив ваш вивід, використовуючи локальну URL-адресу:

% wget --debug --tries 1 --read-timeout=900 --timeout=0 http://localhost:5000/foo/bar
Setting --tries (tries) to 1
Setting --read-timeout (readtimeout) to 900
Setting --timeout (timeout) to 0
DEBUG output created by Wget 1.13.4 on darwin10.8.0.

URI encoding = `US-ASCII'
--2012-12-13 19:54:40--  http://localhost:5000/foo/bar
Resolving localhost (localhost)... 127.0.0.1, ::1, fe80::1
Caching localhost => 127.0.0.1 ::1 fe80::1
Connecting to localhost (localhost)|127.0.0.1|:5000... connected.
Created socket 3.
Releasing 0x000000010041d0f0 (new refcount 1).

---request begin---
GET /foo/bar HTTP/1.1
User-Agent: Wget/1.13.4 (darwin10.8.0)
Accept: */*
Host: localhost:5000
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response... No data received.
Closed fd 3
Giving up.

Як я це зробив? Ну, це легко, з іншого боку, я відкрив послугу на порту 5000 і закрив його після передачі запиту:

% nc -kl 5000
GET /foo/bar HTTP/1.1
User-Agent: Wget/1.14 (darwin10.8.0)
Accept: */*
Host: localhost:5000
Connection: Keep-Alive

GET /foo/bar HTTP/1.1
User-Agent: Wget/1.13.4 (darwin10.8.0)
Accept: */*
Host: localhost:5000
Connection: Keep-Alive

^C

Отже, що все це означає, що сервер, до якого ви намагаєтеся підключитися, або не є HTTP сервер або глючить. Він відкриває сокет, коли ви стукаєте в порт, і як тільки ви даєте свій HTTP мова, вона закривається відразу (або після тайм-ауту, ви не сказали). Так чи інакше, wget працює нормально, ваша служба не є.

Якщо ви думаєте, що це wget Вини, ви спробували використати curl замість цього?


Я вважав, що тайм-аут wget був проблемою, але я не вважав, що apache / php закриває з'єднання, тому що ми маємо інші тривалі виклики. Я використовую ubuntu apache (2.2.22) з 5.3.10-1ubuntu3.4 і встановлюю тайм-аут з set_time_limit PHP (0) ;. Будь-які пропозиції щодо закриття з'єднання?
JSP
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.