HttpWebRequest将凭据传递给下一个HttpWebRequest

ano*_*non 2 .net c# login credentials httpwebrequest

我正在使用HttpWebRequest登录页面并获取一些信息.然后,我使用该信息创建一个新的HttpWebRequest以获取更多信息.我不想使用WebClient.

如何将使用第一个HttpWebRequest登录时获得的凭据传递给第二个?

编辑:如果我使用CookieCollection,那么这将返回为空.我只是尝试使用WebClient作为最后的手段,即使它不起作用,第二个请求将我带回登录屏幕.我注意到在WebBrowser中有一个cookie.

tva*_*son 6

在发送之前为每个请求添加CookieContainer.将第一个响应中获得的cookie添加到第二个请求中.假设他们使用cookie进行身份验证,这应该验证第二个请求.

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlWithParameters);
 request.CookieContainer = new CookieContainer();

 HttpWebResponse response = (HttpWebResponse) request.GetResponse();

 var cookies = new CookieContainer();
 cookies.Add( response.Cookies );

 request = (HttpWebRequest)WebRequest.Create(secondUrlWithParameters);
 request.CookieContainer = cookies;

 ...
Run Code Online (Sandbox Code Playgroud)