302 Found C#

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by IgrikX, 2 Jun 2010.

  1. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    Когда сервак блюёт 302, С# блюёт в ответ, как сделать, что бы C# на строке
    HttpWebResponse money_res = (HttpWebResponse)money.GetResponse();
    не выкидывал из программы?
     
  2. Kaas

    Kaas Elder - Старейшина

    Joined:
    13 Feb 2007
    Messages:
    31
    Likes Received:
    5
    Reputations:
    0
    Мне помогает
    Code:
    request.AllowAutoRedirect = true;
    
    плюс можно анализировать статус код через свойство response.StatusCode
     
  3. .ATK

    .ATK Active Member

    Joined:
    20 Feb 2009
    Messages:
    143
    Likes Received:
    111
    Reputations:
    9
    весь метод дай.
    а вообще, есть такая штука: try{}catch{} :)
     
  4. Bers

    Bers Member

    Joined:
    17 May 2010
    Messages:
    78
    Likes Received:
    30
    Reputations:
    26
    HTTP-код 302 - суть редирект.
    Чтобы он обрабатывался автоматически - поставь у HttpWebRequest свойство AllowAutoRedirect в true. Либо проанализируй HTTP-заголовки (свойство Headers у класса HttpWebResponse) и выполни перенаправление самостоятельно. Например, так:

    Code:
    var httpResponse = (HttpWebResponse)response;
    if(httpRequest.StatusCode == HttpStatusCode.Found)
    {
      var addressToRedirect = httpResponse.Headers["Location"];
      // теперь в переменной addressToRedirect лежит адрес, на который тебя перенаправляют
    }
    
    Чтобы из программы не выкидывало - оборачивай критичные места в try { ... } catch { ... }.