Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];

Вниз

idhttp1.Get зависает   Найти похожие ветки 

 
Student85236   (2009-08-27 12:02) [0]

пытаюсь перегрузить роутер использую indy
но программа зависает на отправке get запроса как исправить?
begin
idhttp1.Request.BasicAuthentication :=true;
idhttp1.Request.Username:="admin";
idhttp1.Request.Password:="admin";
idhttp1.Get("http://10.39.1.33/cgi-bin/reset.cgi")  ;
idhttp1.Free;
end;


 
Сергей М. ©   (2009-08-27 12:07) [1]


> пытаюсь перегрузить роутер использую indy


А что, роутер этот не поддерживает snmp-управление, в частности snmp-ребут ?
Только веб-интерфейс и без вариантов ?


 
Student85236   (2009-08-27 12:09) [2]

Только веб-интерфейс


 
Сергей М. ©   (2009-08-27 12:13) [3]

А что за дивайс ?


 
Student85236   (2009-08-27 12:15) [4]

Axesstel MV420


 
Сергей М. ©   (2009-08-27 12:17) [5]

И перезагружать ты его пытаешься, видимо, удаленно, т.е. роутер и твой http-клиент находятся в разных подсетях, так ?


 
Student85236   (2009-08-27 12:20) [6]

да команда проходит только зависает в режиме отладки на get запросе как бы это обнулить?


 
Сергей М. ©   (2009-08-27 12:24) [7]


> только зависает в режиме отладки на get запросе


А если запускать не из-под отладчика, то что возвращает Get() ?


 
Student85236   (2009-08-27 12:27) [8]

как это проверить подскажите пожалуйста


 
Медвежонок Пятачок ©   (2009-08-27 12:28) [9]

убрать idhttp и взять idtcpclient
послать гет, ответ не читать


 
Сергей М. ©   (2009-08-27 12:28) [10]

Не понял, чего проверить ?


 
Медвежонок Пятачок ©   (2009-08-27 12:29) [11]

либо посмотреть, может там роутер редиректом отвечает, а у тебя он не включен


 
Student85236   (2009-08-27 12:30) [12]

ответ какой функцией прочитать?


 
Медвежонок Пятачок ©   (2009-08-27 12:31) [13]

а ты вообще уверен, что ответ есть?


 
Student85236   (2009-08-27 12:33) [14]

да я забыл там идёт редирект


 
Student85236   (2009-08-27 12:35) [15]

хорошо а как тогда на IdTCPClient сделать авторизацию?


 
Сергей М. ©   (2009-08-27 12:35) [16]


> может там роутер редиректом отвечает


Скорее всего именно так и отвечает - редиректом на, скажем, http://10.39.1.33/start.htm.

Др.вопрос, что http-клиент, если ему разрешено, тут же ринется по редиректу, а хост роутера и его веб-сервер поднимутся далеко не сразу, тем паче если роутер ходит во внешние сети (откуда автор , полагаю, пытается ребутить свой дивайс) через PPP


 
Медвежонок Пятачок ©   (2009-08-27 12:36) [17]

И что у нас в HandleRedirect?


 
Student85236   (2009-08-27 12:38) [18]

как посмотреть ? HandleRedirect


 
Сергей М. ©   (2009-08-27 12:39) [19]


> как тогда на IdTCPClient сделать авторизацию?
>


Точно так же как ее делает IdHTTP, только придется это делать ручками.
А зачем тебе авторизация ? Ты же уже авторизовался средствами IdHTTP, осталось только исхитриться послать средствами этого же компонента запрос без ожидания ответа


 
Student85236   (2009-08-27 12:40) [20]

а как не ждать ответ? он мне в принципе не нужен


 
Медвежонок Пятачок ©   (2009-08-27 12:41) [21]

ты чего такой трудный-то?


 
Медвежонок Пятачок ©   (2009-08-27 12:45) [22]

http://img198.imageshack.us/img198/5687/redirectalb.jpg

а как не ждать ответ?
убрать idhttp и взять idtcpclient
послать гет, ответ не читать


 
Student85236   (2009-08-27 12:49) [23]

у меня стоит false


 
Anatoly Podgoretsky ©   (2009-08-27 12:53) [24]

Какой ответ, когда роутер прекращает существование, тут нужно переподключение к рутеру. И программа видимо не зависает, а ожидает таймаута.


 
Медвежонок Пятачок ©   (2009-08-27 12:54) [25]

у меня стоит false

И теперь ты молодец?


 
Student85236   (2009-08-27 13:21) [26]

)


 
Сергей М. ©   (2009-08-27 13:27) [27]


> Student85236


Перед вызовом Get() для отправки запроса на ребут подмени на время объект IdHttp.IOHandler на своего наследника TIdIOHandler с перекрытым методом ReadLn, в котором возвращай пустую строку.


 
Student85236   (2009-08-27 14:25) [28]

Спасибо большое но как я незнаю если бы написали )


 
Сергей М. ©   (2009-08-27 14:27) [29]

Что не понятно ?


 
Student85236   (2009-08-27 14:54) [30]

пытаюсь сделать на ics

begin

 httpcli1.URL:="http://10.39.1.33/cgi-bin/reset.cgi";
 httpcli1.Password:="admin";
 httpcli1.Username:="admin";
try
httpcli1.Get;
except
Exit;
end;
if (HttpCli1.StatusCode) = 200 Then
    writeln("ok") else
    writeln("Error "+IntToStr(HttpCli1.StatusCode));

end;


 
Сергей М. ©   (2009-08-27 14:56) [31]

И ?


 
Student85236   (2009-08-27 14:58) [32]

всё равно весит там скорее всего идёт редирект мне не нужен ответ от сервера как это избежать? или получил там ответ 302 и всё


 
Медвежонок Пятачок ©   (2009-08-27 15:00) [33]

Интересно, когда же он догадается включить HandleRedirects?


 
Student85236   (2009-08-27 15:02) [34]

в ics ?


 
Медвежонок Пятачок ©   (2009-08-27 15:06) [35]

да пофик где


 
Сергей М. ©   (2009-08-27 15:08) [36]


> Student85236


И долго ты еще будешь метаться по разным компонентам, в надежде что авось оно само как-нибудь волшебным образом заработает ?


 
Student85236   (2009-08-27 15:09) [37]

как ! я не знаю где это подскажи!!!!!


 
Student85236   (2009-08-27 15:12) [38]

)


 
Сергей М. ©   (2009-08-27 15:15) [39]

HandleRedirects - это опубликованное свойство TIdHTTP, это в Инспекторе Объектов видно.
Ты вообще туда заглядывал, в Инспектор Объектов ??


 
Student85236   (2009-08-27 15:15) [40]

HandleRedirects := true;


 
Сергей М. ©   (2009-08-27 15:17) [41]

А на вопрос в [5] ответить таки сподобишься ?


 
Student85236   (2009-08-27 15:18) [42]

да


 
Сергей М. ©   (2009-08-27 15:20) [43]

Мда .. Что-то ты действительно трудный)


 
Student85236   (2009-08-27 15:50) [44]

idhttp1.Request.BasicAuthentication :=true;
idhttp1.Request.Username:="admin";
idhttp1.Request.Password:="admin";
idhttp1.HandleRedirects:=true;
idhttp1.Get("http://10.39.1.33/cgi-bin/reset.cgi")  ;
idhttp1.Free;


 
Сергей М. ©   (2009-08-27 15:54) [45]

Соизволь ответить на [41] ..


 
Student85236   (2009-08-27 16:03) [46]


> И перезагружать ты его пытаешься, видимо, удаленно, т.е.
>  роутер и твой http-клиент находятся в разных подсетях,
> так ?


да они находяться в разных подсетях


 
Сергей М. ©   (2009-08-27 16:10) [47]

Ну тады обработка редиректа тебя вряд ли спасет.
Действуй по схеме [27]


 
Student85236   (2009-08-27 16:28) [48]

примерчик бы )


 
Медвежонок Пятачок ©   (2009-08-27 16:33) [49]

таймаут для idHTTP секунды в три и обернуть все в try/except


 
Сергей М. ©   (2009-08-27 16:33) [50]

Что не понятно ?


 
Сергей М. ©   (2009-08-27 16:40) [51]


> Медвежонок Пятачок ©   (27.08.09 16:33) [49]


Лучше не заморачиваться с таймаутом.
Тем более если следом за ребутом нужен повторный веб-запрос к роутеру.
Неизвестно когда тот поднимет интерфейс и веб-сервис, особенно в случае когда он лезет к провайдеру через PPP



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.043 c
2-1251902073
Merlin_88
2009-09-02 18:34
2009.10.25
Помогите с Классами


15-1250935575
El
2009-08-22 14:06
2009.10.25
Предварительный просмотр сообщения


1-1222010444
Д С
2008-09-21 19:20
2009.10.25
Как задать толщину линии TPen.Width равную 1 мм?


2-1251356970
Priest
2009-08-27 11:09
2009.10.25
Как определить, что работаем под 64 разрядной виндой


15-1249924710
Германн (из Бердянска)
2009-08-10 21:18
2009.10.25
Программка для логирования (учета) траффика





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский