If you consider in terms of the HTTP protocol, each request is idle / unique. The only way to link one request to another programmatically using something like Cookies, but for the HTTP protocol itself, the request is unique.
I think the HttpWebRequest object was designed with that in mind. Each HttpWebRequest represents one unique URL call, and you create parameters for this call. If you want to make another request to a different URL, you must create a new HttpWebRequest and pass it the status information that you are using, that is: cookie container, header information, etc.
The long-term answer to this question is that the object is designed to read only the URL and the only way to handle it is:
Use a small ad hack, for example, you already did, if you absolutely need to use this HttpWebRequest object that you have.
Create a new HttpWebRequest (WebRequest.Create ()) and copy the status information into a new request.
source share