![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Indy.TidHTTP. Ошибка HTTP/1.1 302 Found [D7, XP]
vegarulez © (2014-03-17 03:41:00)Привет всем мастерам! не могу понять что случилось. до позавчерашнего дня всё работало долгие годы исправно позавчера что-то произошло видимо на сервере откуда забираю информацию по курсам валют - но что понять никак не могу ((( забираю курсы валют в xml вот отсюда
http://www.cbr.ru/scripts/XML_daily.asp
на первый взгляд там ничего не поменялось. но у меня кое где программа корректно отрабатывает, а кое где нет и не могу понять почему в некоторых местах выдаёт ошибку HTTP/1.0 302 Found при обращении к этому ресурсу за xml`ем а в некоторых нет. Подскажите, что делаю не так? уже всю голову поломал... (
myHTTP:TIdHTTP;
Source: TMemoryStream;
Response: TStringStream;
Response_Data:TStringlist;
....
myHTTP:=TIdHTTP.Create(nil);
myHTTP.ProtocolVersion:=pv1_1;
Response := TStringStream.Create('');
Source := TMemoryStream.Create;
Response_Data:=TStringlist.Create;
//запрос
myHTTP.Request.ContentType:='application/x-www-form-urlencoded';
myHTTP.Post(' http://www.cbr.ru/scripts/XML_daily.asp',Source,Response);
myHTTP.Socket.CloseGracefully;
myHTTP.Disconnect; // дисконект от сервера
Response_Data.Text:=Response.DataString; // разбор ответа сервера
//ну и дальше пошёл собственно разбор уже полученного xml
по Exception при обращении отваливается вот с такой ошибкой:
HTTP/1.0 302 Found
заголовки
P3P: CP=NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM
Location: /scripts/XML_daily.asp
Set-Cookie: ddddddd=342def20ddddddd_342def20; Path=/
через браузер захожу - тот же самый xml что и был всегда.
Подскажите где тут собака порылась? Уже не знаю что делать, в какую сторону копать?
Заранее благодарен.
clickmaker (2014-03-17 20:56:00) [1]> Мишка? :)
жена полковника Вагина )
Dennis I. Komarov (2014-03-17 20:24:00) [2]
> это все... (17.03.14 19:45) [9]
Мишка? :)
это все... (2014-03-17 19:45:00) [3]зачем там вообще инди, если
xxx := CoDomDocument.create;
xxx.async := false;
xxx.load( http://www.cbr.ru/scripts/XML_daily.asp);
ShowMessage(xxx.xml);
vegarulez (2014-03-17 14:43:00) [4]
function GetPageSource(AURL: string): string;
var
AIdHTTP: TIdHTTP;
begin
AIdHTTP := TIdHTTP.Create(nil);
try
Result := AIdHTTP.Get(AURL);
finally
AIdHTTP.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
PageSource: string;
begin
PageSource := GetPageSource(' http://www.cbr.ru/scripts/XML_daily.asp');
Memo1.Lines.Append(PageSource);
end;
вроде пашет.... но странно всё же... это всё...
sniknik (2014-03-17 14:38:00) [5]> а что за параметр? подскажи?
а какие есть? перечисли... ломает смотреть.
> гет через инди ту же ошибку вываливает. плавали знаем.
вообще, получаю валюты оттуда да же, тоже инди, только гет..., проблем нет, редирект у меня специально не разрешен (типа защита, от возможного взлома. одна из).
что намекает на то, что у них его как не было так и нет. где-то в другом "ловишь", возможно как раз из "ловушки на взлом...". или все-таки пост "проблемный".
vegarulez (2014-03-17 12:50:00) [6]ухты (17.03.14 12:41) [5]:
есть черный ящик есть входные и выходные проводки. так понятнее?
так сделано. гет через инди ту же ошибку вываливает. плавали знаем.
вся трабла не в пост или гет, а в том что ошибка вываливается. а до этого годами работало без проблем.
ухты (2014-03-17 12:41:00) [7]
> потому что так сделано. по существу вопроса.
странная логика, там гет работает, да и документацию читать надо
ну как, по существу вопроса?
vegarulez (2014-03-17 11:39:00) [8]ухты (17.03.14 09:47) [2]
а потому...
потому что так сделано. по существу вопроса.
clickmaker © (17.03.14 09:20) [1]
Ок спасибо посмотрю.
sniknik © (17.03.14 10:07) [3]
а что за параметр? подскажи?
sniknik (2014-03-17 10:07:00) [9]> кое где программа корректно отрабатывает
у инди есть параметр "разыменовывать" редиректы, само начинает обрабатывать, гдето стоит где-то нет...
ухты (2014-03-17 09:47:00) [10]а почему post?
clickmaker (2014-03-17 09:20:00) [11]302 - это редирект. Новый урл тебе надо прочитать в поле Location Response