ASP HttpWebRequest и перенаправление
-
19-09-2019 - |
Вопрос
Хорошо, у меня есть клиент, отправляющий POST на сервер с некоторыми данными.Сервер получает сообщение и отвечает перенаправлением.Проблема в том, что клиент не перенаправляет.Кроме того, я пытался проверить код состояния ответа, который получает клиент, и он всегда один и тот же «ОК».Вместо кода перенаправления.Что мне не хватает?
На стороне клиента у меня есть что-то вроде этого:
StringBuilder sb;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/serv/Default.aspx");
request.Method = "POST";
byte[] data = Encoding.ASCII.GetBytes(GetDATA());
request.ContentType = "text/xml";
request.ContentLength = data.Length;
Stream stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
request.AllowAutoRedirect = true;
request.MaximumAutomaticRedirections = 10;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
response.Close(); } catch(Exception ex) {}
На стороне сервера у меня есть только эта строка:
HttpContext.Current.Response.Redirect("http://www.google.com", true);
В этом случае клиент получает ответ и ничего не делает.
Спасибо.
Решение
Если для параметра «AllowAutoRedirect» установлено значение true, это означает, что ваш объект HttpWebRequest выполнит второй веб-запрос, как только увидит перенаправление.Когда вы видите «200 ОК» в объекте ответа, это означает, что вы видите ответ для «www.google.com».Вы можете проверить Response.ResponseURI, чтобы убедиться в этом.
Вам нужно будет отключить «AllowAutoRedirect», а затем проверить код ответа, как сказал Одед.