2010-02-08 5 views
5

ОК, у меня есть клиент, выполняющий POST на сервере с некоторыми данными. Сервер получает сообщение и отвечает перенаправлением. Проблема в том, что клиент не перенаправляет. Кроме того, я попытался проверить StatusCode ответа, который получает клиент, и он всегда совпадает с «ОК». Вместо кода перенаправления. Что мне не хватает?ASP HttpWebRequest и перенаправление

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

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

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

Спасибо.

ответ

6

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^