Чтение редиректов

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by RGrand, 26 Aug 2012.

  1. RGrand

    RGrand Banned

    Joined:
    27 Jun 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Мне нужно,чтобы программа читала содержание редиректов.Но проблема в том,что сайт выдает 2 редиректа(сначала 1,после перехода по нему - второй).
    Я написал такой скрипт:
    ...if Pos('request2', IdHTTP1.Request.URL)<>0 then ...
    но он читает только первый редирект,а мне нужен второй.Я пробовал и response.location и response.rawheaders - читает только первый редирект.Как можно сделать чтение второго редиректа?
     
  2. muip

    muip New Member

    Joined:
    1 Sep 2011
    Messages:
    45
    Likes Received:
    4
    Reputations:
    0
    handleredirects на false.

    C Response.RawHeaders.Text парсишь ткущею локацию. Переходишь по ней, после чего с хедера парсишь опять текущею локацию.
     
  3. RGrand

    RGrand Banned

    Joined:
    27 Jun 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Спасибо,попробую.Еще бы было по проще.
    Просто слишком долгая операция.
     
  4. RGrand

    RGrand Banned

    Joined:
    27 Jun 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Что-то я не могу понять,как спарсить.Не мог бы объяснить?
     
  5. mskws

    mskws New Member

    Joined:
    3 Jul 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    я делал так:
    Code:
    idhttp1.HandleRedirects:=false;
     try page:=idhttp1.get('http://site.ru');
     except
     redirect:=idhttp1.Response.Location;
     end;
    в твоём случае сделал бы так
    Code:
    idhttp1.HandleRedirects:=false;
    try 
    idhttp1.get('http://site.ru');
    except
    redirect:=idhttp1.Response.Location; // 1ый редирект
    end;
    try 
    idhttp1.get(redirect);
    except
    redirect:=idhttp1.Response.Location; // второй редирект
    end;
    
    page:=idhttp1.get(redirect); // нужная страница
    
    
    чтото типа такого )
     
    #5 mskws, 27 Aug 2012
    Last edited: 27 Aug 2012