Конференция "Начинающим" » Indy.TidHTTP. Ошибка HTTP/1.1 302 Found [D7, XP]
 
  • vegarulez (17.03.14 03:41) [0]
    Привет всем мастерам! не могу понять что случилось. до позавчерашнего дня всё работало долгие годы исправно позавчера что-то произошло видимо на сервере откуда забираю информацию по курсам валют - но что понять никак не могу ((( забираю курсы валют в 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 © (17.03.14 09:20) [1]
    302 - это редирект. Новый урл тебе надо прочитать в поле Location Response
  • ухты (17.03.14 09:47) [2]
    а почему post?
  • sniknik © (17.03.14 10:07) [3]
    > кое где программа корректно отрабатывает
    у инди есть параметр "разыменовывать" редиректы, само начинает обрабатывать, гдето стоит где-то нет...
  • vegarulez (17.03.14 11:39) [4]
    ухты   (17.03.14 09:47) [2]
    а потому...
    потому что так сделано. по существу вопроса.

    clickmaker ©   (17.03.14 09:20) [1]
    Ок спасибо посмотрю.

    sniknik ©   (17.03.14 10:07) [3]
    а что за параметр? подскажи?
  • ухты (17.03.14 12:41) [5]

    > потому что так сделано. по существу вопроса.
    странная логика, там гет работает, да и документацию читать надо
    ну как, по существу вопроса?
  • vegarulez (17.03.14 12:50) [6]
    ухты   (17.03.14 12:41) [5]:
    есть черный ящик есть входные и выходные проводки. так понятнее?
    так сделано. гет через инди ту же ошибку вываливает. плавали знаем.
    вся трабла не в пост или гет, а в том что ошибка вываливается. а до этого годами работало без проблем.
  • sniknik © (17.03.14 14:38) [7]
    > а что за параметр? подскажи?
    а какие есть? перечисли... ломает смотреть.

    > гет через инди ту же ошибку вываливает. плавали знаем.
    вообще, получаю валюты оттуда да же, тоже инди, только гет..., проблем нет, редирект у меня специально не разрешен (типа защита, от возможного взлома. одна из).

    что намекает на то, что у них его как не было так и нет. где-то в другом "ловишь", возможно как раз из "ловушки на взлом...". или все-таки пост "проблемный".
  • vegarulez (17.03.14 14:43) [8]
    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;



    вроде пашет.... но странно всё же... это всё...
  • это все... (17.03.14 19:45) [9]
    зачем там вообще инди, если

    xxx := CoDomDocument.create;
    xxx.async := false;
    xxx.load(http://www.cbr.ru/scripts/XML_daily.asp);
    ShowMessage(xxx.xml);
  • Dennis I. Komarov © (17.03.14 20:24) [10]

    > это все...   (17.03.14 19:45) [9]

    Мишка? :)
  • clickmaker © (17.03.14 20:56) [11]
    > Мишка? :)

    жена полковника Вагина )
 
Конференция "Начинающим" » Indy.TidHTTP. Ошибка HTTP/1.1 302 Found [D7, XP]
Есть новые Нет новых   [119248   +27][b:0][p:0.003]