PDA

Просмотр полной версии : 302 Found C#


IgrikX
02.06.2010, 18:20
Когда сервак блюёт 302, С# блюёт в ответ, как сделать, что бы C# на строке
HttpWebResponse money_res = (HttpWebResponse)money.GetResponse();
не выкидывал из программы?

Kaas
02.06.2010, 18:34
Мне помогает

request.AllowAutoRedirect = true;

плюс можно анализировать статус код через свойство response.StatusCode

.ATK
02.06.2010, 18:43
весь метод дай.
а вообще, есть такая штука: try{}catch{} :)

Bers
04.06.2010, 23:45
Когда сервак блюёт 302, С# блюёт в ответ, как сделать, что бы C# на строке
HttpWebResponse money_res = (HttpWebResponse)money.GetResponse();
не выкидывал из программы?

HTTP-код 302 - суть редирект.
Чтобы он обрабатывался автоматически - поставь у HttpWebRequest свойство AllowAutoRedirect в true. Либо проанализируй HTTP-заголовки (свойство Headers у класса HttpWebResponse) и выполни перенаправление самостоятельно. Например, так:


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


Чтобы из программы не выкидывало - оборачивай критичные места в try { ... } catch { ... }.