|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
idhttp Ошибка сервера 307
Получаю текстовый файлик с сайта (для проверки обновления) через idhttp
s:=idHTTP1.Get('ссылка_удалена'); раньше работало ок,сегодня появилась такая ошибка HTTP/1.1 307 Temporary Redirect погуглив,узнал что это ошибка означает что файл временно перемещён и в ответе приходит временная ссылка для получения файла.и послыается она в IdHTTP1.Response.Location. изменил код: Код:
s:=idHTTP1.Get('ссылка_удалена',[307]); //тут в случае ошибки 307 не выскочит Exception if IdHTTP1.Response.Location <> '' then begin // если пришел редирект то перходим по нему s := IdHTTP1.Response.Location; s:=idHTTP1.Get(s); end; получил новый юрл во время ошибки http://ссылка_удалена/vers.txt?T9C7j...550a96 5da5=1 но на этом шаге: s:=idHTTP1.Get(s); опять получил ошибку 307. Как быть? ведь вроде переходу по новой ссылке. Браузеры успешно открывают файл по ссылке PS: админы не сочтите ссылку за рекламу,после решения проблемы ссылки удалю Последний раз редактировалось Snake22, 21.12.2012 в 16:59. |
#2
|
||||
|
||||
да все работает:
Код:
IdHTTP1.HandleRedirects:=True; Memo1.Text:=IdHTTP1.Get('http://snaked3.16mb.com/downloads/files/miniserv/vers.txt'); Пишу программы за еду. __________________ |
#3
|
|||
|
|||
Цитата:
и да кстати, с помощью компонента synaps(та м получается куки отправлять) выяснил что при запросе приходит ответ,и в его headere сожержится не только ссылка на редирект,но и кукис, Код:
HTTP/1.1 302 Moved Temporarily Server: hosting Date: Thu, 20 Dec 2012 21:30:41 GMT Content-Type: text/html Content-Length: 156 Connection: keep-alive Set-Cookie: YMCA69=d29c7c2f6de82b616abc9d6da534d9cb; path=/ Location: http://snaked3.ru/?T9C7jFEvUTCm_47a01a3f1753e93bc1f69c550a965da5=1 подскажите как в idhttp установить кукис,а то чтото не получается таким способом: IdHTTP1.CookieManager.AddServerCookie('кукис=значе ние',IdHTTP1.URL); кукис кажется не устанавливается,так как приходит таже ошибка 307. а с компонента synapse httpsend.pas всё ок получается.но он меня не устраивает Последний раз редактировалось Snake22, 21.12.2012 в 13:24. |
#4
|
||||
|
||||
давай я тебе dll откомпилю, ты через нее будешь страничку получать?
sorry for offtop, friday Пишу программы за еду. __________________ |
#5
|
||||
|
||||
теперь кроме шуток) попробуй так:
Код:
uses msxml, ComObj, ... var xml: IXMLHttpRequest; begin xml:=CreateComObject(CLASS_XMLHTTPRequest) as IXMLHttpRequest; xml.open('GET', 'http://snaked3.16mb.com/downloads/files/miniserv/vers.txt', False, EmptyParam, EmptyParam); xml.setRequestHeader('If-Modified-Since', '0'); xml.send(EmptyParam); if xml.status=200 then Memo1.Text:=xml.responseText; end; Пишу программы за еду. __________________ |
#6
|
|||
|
|||
спасибо за помощь.но я решил забить на idhttp, оказывается httpsend тоже может прогрессбар во время скачки показывать.а то раньше незнал и этим он меня не устраивал,сейчас научился)
а мне он нужен так как после получения номера версии предлагается самозакачивание файла,с прогрессбаром. |