ASP HttpWebRequest и перенаправление

Хорошо, у меня есть клиент, делающий POST к серверу с некоторыми данными. Сервер получает сообщение и отвечает перенаправлением. Проблема состоит в том, что клиент не делает перенаправлений. Кроме того, я попытался проверить StatusCode ответа, который получает клиент, и это всегда - тот же "OK". Вместо кода перенаправления. Что я пропускаю?

В стороне клиента у меня есть что-то вроде этого:

  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);

В этом случае клиент получает ответ и ничего не делает.

Спасибо.

5
задан Joel Coehoorn 1 December 2011 в 15:30
поделиться

1 ответ

Если для параметра AllowAutoRedirect установлено значение true, это означает, что ваш объект HttpWebRequest сделает второй веб-запрос, как только увидит перенаправление. Когда вы видите «200 OK» от объекта ответа, это потому, что вы видите ответ для «www.google.com». Вы можете проверить Response.ResponseURI, чтобы убедиться в этом.

Вам нужно отключить «AllowAutoRedirect», а затем проверить код ответа, как сказал Одед.

6
ответ дан 14 December 2019 в 13:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: