Вопрос

Хорошо, у меня есть клиент, отправляющий 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», а затем проверить код ответа, как сказал Одед.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top