一直在寻找解决方案,但我还没有得到一个能回答我问题的结果。
我正在寻找一种使用HttpClient浏览网站的方法(基本上是阅读html)。我正在为Windows手机制作应用程序,因此可能会禁用某些选项。
我想创建一个程序进入某个站点,登录,然后能够检索访问html源代码。
因此,当我登录时,会话ID保存在CookieContainer中,因此我将能够访问需要登录的站点。我如何使用HttpClient执行此操作:)?
答案 0 :(得分:2)
HttpClient会自动为您管理身份验证Cookie。只需确保为多个请求重复使用相同的HttpClient实例。在幕后,HttpClient创建了一个HttpClientHandler实例,它有一个CookieContainer。
这是一个登录NerdDinner站点并检索安全页面的示例。
var httpClient = new HttpClient();
// Create login payload
var body = new Dictionary<string, string>()
{
{"UserName", "bob"},
{"Password", "xyz"},
{"RememberMe", "false"}
};
var content = new FormUrlEncodedContent(body);
// POST to login form
var response = await httpClient.PostAsync("http://www.nerddinner.com/Account/LogOn?returnUrl=%2F", content);
// Make new request to secured resource
var myresponse = await httpClient.GetAsync("http://www.nerddinner.com/Dinners/My");
var stringContent = await myresponse.Content.ReadAsStringAsync();