C#使用HttpClient WP浏览网站

时间:2013-10-26 20:33:03

标签: c# windows-phone-8 windows-phone dotnet-httpclient

一直在寻找解决方案,但我还没有得到一个能回答我问题的结果。

我正在寻找一种使用HttpClient浏览网站的方法(基本上是阅读html)。我正在为Windows手机制作应用程序,因此可能会禁用某些选项。

我想创建一个程序进入某个站点,登录,然后能够检索访问html源代码。

因此,当我登录时,会话ID保存在CookieContainer中,因此我将能够访问需要登录的站点。我如何使用HttpClient执行此操作:)?

1 个答案:

答案 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();