1

解決策を探していましたが、質問に答える結果を得ることができませんでした。

HttpClient を使用して、サイトを通過する (基本的には html を読む) 方法を探しています。Windows phone 用のアプリを作成しているため、一部のオプションが無効になっている場合があります。

サイトにアクセスしてログインし、アクセス html ソース コードを取得できるプログラムを作成したいと考えています。

ログインすると、セッション ID が CookieContainer に保存されるので、ログインが必要なサイトにアクセスできるようになります。HttpClient :) を使用してこれを行うにはどうすればよいですか?

4

1 に答える 1

2

HttpClient は、認証 Cookie を自動的に管理します。複数のリクエストに対して同じ HttpClient インスタンスを再利用するようにしてください。内部では、HttpClient は CookieContainer を持つ HttpClientHandler のインスタンスを作成します。

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();
于 2013-10-28T14:11:30.183 に答える