WebRequest следует за редиректом - PullRequest
1 голос
/ 24 ноября 2011

У меня есть страница (url a), которая отправляет форму программным способом с помощью веб-запроса.
Страница, которая принимает запрос формы, выполняет кучу всего, а затем перенаправляет на другую страницу (url b)

Можно ли вообще выполнить веб-запрос (который читает, обрабатывает и перенаправляет запрос формы), который затем перенаправляет текущую страницу (URL-адрес a) в конечное местоположение веб-запроса (URL-адрес b).

У меня сейчас есть;

  HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(url + postVars);  
  myRequest.AllowAutoRedirect = true;

  HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();  
  myRequest.AllowAutoRedirect = true;

  // Read response stream
  StreamReader myStream = new StreamReader(myResponse.GetResponseStream());  
  string response = myStream.ReadToEnd();  
  myResponse.Close();

Это все работает нормально, и все происходит, как и ожидалось, кроме как после myResponse.Close(), я все еще на URL a, а не на URL b, т.е. страница, с которой был сделан запрос, все еще остается активной страницей

Есть идеи, где я иду не так? Или есть идеи получше?

Мне нужно уметь.

  • Открыть страницу a
  • отправить форму программно в модуль b (другая страница)
  • Быть перенаправленным на страницу c (в основе которой лежит перенаправление из модуля b)

Имеет ли это смысл?
Заранее спасибо.

1 Ответ

3 голосов
/ 24 ноября 2011

Я думаю, вы не понимаете, как работает перенаправление - вы делаете запрос на URL A , но в конечном итоге можете получить ответ от URLB , если вы перенаправлены туда (а AllowAutoRedirect установлено в true).

Клиент / запросчик не перенаправляется в какой-либо форме или форме, просто , когда ответ на запрос клиента поступает с .Так что ваша «активная страница», конечно же, никогда не изменится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...