I have a problem getting the location header from WebResponse:
private CookieContainer _cookieContainer = new CookieContainer(); ... HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri); webRequest.Method = "POST"; webRequest.Referer = "www.xxxxx.sk"; webRequest.Proxy = GetSystemProxy(); webRequest.AllowAutoRedirect = false; webRequest.CookieContainer = _cookieContainer; webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.KeepAlive = false;
When I use the Tamper data plugin in Firefox - I get what I want:
Location = HTTP://www.xxxxx.sk i9 = 3522a42d0207
But looking at HttpWebResponse.Headers does not contain this header (although 90% of the headers received are the same as with firefox)
I tried to install. Expect to get the server to provide me with this header, but I got an error 417 The wait failed.
The reason I need this header is because it has the session identifier that I need for further requests (the website has double protection - cookies + session identifier in the URL)
I donβt understand that by default, HttpWebRequest will follow the redirects , so if the server sends the 301/302 status code, a new request will be issued to retrieve the resource using the Location header, therefore, as soon as this final resource is received, the response will no longer Location header. But if I set AllowAutoRedirect to false , why the title is not displayed?
EDITED: Headers:
Mozilla request headers: Host=prihlasenie.azet.sk User-Agent=Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language=en-us,en;q=0.5 Accept-Encoding=gzip,deflate Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive=115 Connection=keep-alive Referer=http://www.azet.sk/ Content-Type=application/x-www-form-urlencoded Content-Length=64 POSTDATA=form%5Busername%5D=yyyyyyyyyy&form%5Bpassword%5D=zzzzzzzzzz -- Mozilla response headers: Status=Found - 302 Date=Fri, 14 Jan 2011 13:12:37 GMT Server=Apache Pragma=no-cache Expires=Fri, 14 Jan 2011 13:12:37 +0000 Cache-Control=post-check=0, pre-check=0, no-cache, must-revalidate Set-Cookie=AZetSecId=3a2f118910; expires=Fri, 28-Jan-2011 13:12:37 GMT; path=/; domain=.azet.sk Location=http://www.azet.sk/?i9=6ffcf488a877 Vary=User-Agent,Accept-Encoding X-Served-By=prihlasenieweb-04 Content-Encoding=gzip Content-Length=1124 Keep-Alive=timeout=15, max=82 Connection=Keep-Alive Content-Type=text/html -- ------------------------------------------------ --- HttpWebRequest headers: {Referer: http://www.xxxx.sk Content-Type: application/x-www-form-urlencoded Host: prihlasenie.xxxx.sk Content-Length: 59 Expect: 100-continue Connection: Close } and I'm doing: byte[] paramBytes = Encoding.ASCII.GetBytes(postParameters); webRequest.ContentLength = paramBytes.Length; using (Stream requestStream = webRequest.GetRequestStream()) { requestStream.Write(paramBytes, 0, paramBytes.Length); } --- HttpWebResponse headers: {Pragma: no-cache Vary: User-Agent,Accept-Encoding X-Served-By: prihlasenieweb-05 Connection: close Content-Length: 2113 Cache-Control: post-check=0, pre-check=0, no-cache, must-revalidate Content-Type: text/html Date: Thu, 13 Jan 2011 20:56:21 GMT Expires: Thu, 13 Jan 2011 20:56:21 +0000 Set-Cookie: xxxxSecId=b425262c2e; expires=Thu, 27-Jan-2011 20:56:21 GMT; path=/; domain=.xxxx.sk Server: Apache }