|
|
|
HTTP вызовы из библиотеки - какие грабли?
|
|||
|---|---|---|---|
|
#18+
Написан код для http запросов. В обычном приложении работает. Помещаем этот код в библиотеку, подключаем, вызываем - не работает. Висит и ничего не делает. Файрвол убрал... В чем может быть причина? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 13:09 |
|
||
|
HTTP вызовы из библиотеки - какие грабли?
|
|||
|---|---|---|---|
|
#18+
Уточнение, локальные запросы срабатывают, внешка - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 13:26 |
|
||
|
HTTP вызовы из библиотеки - какие грабли?
|
|||
|---|---|---|---|
|
#18+
Уточнение, на http://ya.ru не работает, а на http://usu.ru вполне работает. Какие такие признаки несет в себе запрос из библиотеки, что серьезные порталы его отпихивают, а простые ребята принимают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 13:42 |
|
||
|
HTTP вызовы из библиотеки - какие грабли?
|
|||
|---|---|---|---|
|
#18+
Библиотек и так достаточное количество, зачем писать свою. Что делать: для отладки добавить вывод куда-нибудь HTTP-заголовков, получаемых от сервера, и смотреть в них последние HTTP-коды. Они покажут, какое действие сервер ожидает от клиента. Если мы щёлкаем мышью по ссылке в IE и в ответ загружается страница, то только кажется, что выполнена одна операция посылки запроса и получения ответа. В действительности может быть целая цепочка запросов и ответов. Например, ты посылаешь HTTP запрос GET на получение страницы, а сервер в ответ посылает cookie или запрос на их получение. Программа не посылает их серверу, и тот в свою очередь, ждёт ничего не делая. Или: в ответ на запрос сервер делает переадресацию на другой адрес. Тогда он пошлёт HTTP код, что производится переадресация, и новый адрес. Клиент, получив этот код, должен послать повторный запрос по новому адресу (Возможна цепочка переадресаций, и даже циклическая переадресация, если клиентская программа реагирует неправильно). Но по глупости этого не делает, и возникает ожидание.Или, если используется прокси-сервер, то он сначала посылает коды, означающие "требуется авторизация" или "авторизация не удалась" (если не послать правильные имя-пароль). Я описал только некоторые ситуации, другие изучить на опыте. Если сервер - локальный, то посылаемымые им коды можно увидеть в его лог-файле. В общем случае надо улавливать своей программой полученные от сервера HTTP заголовки, и выводить. Каждый заголовок с HTTP кодом имеет вид: 200 Ok (код и краткое сообщение об успешном выполнении операции). В группе заголовков, посылаемых сервером зараз, могут быть несколько, содержащих коды (начинаются с числа). Поэтому выводить их все. Полный список HTTP кодов содержится в спецификации протокола HTTP 1.1 (документ RFC2616). Да, ещё бывают составные HTML страницы - фреймы и картинки загружаются дополнительными запросами. Но если устранить вышеописанные ситуации, то ты хоть что нибудь получишь сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 15:11 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=402&tid=2033163]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 217ms |
| total: | 366ms |

| 0 / 0 |
