1

Web サーバーからファイルをダウンロードしようとしています。

http://web.server.com/getfile=2

自分自身を認証し、ファイルへのアクセスを許可する Cookie を表示できるため、Web ブラウザーでこれを行うことができます。

私はかなりの調査を行い、Cookie コンテナーが Cookie を保持すると信じていますが、CookieContainer を使用して C# 内からこのファイルをダウンロードする方法を特定することはできません。

4

2 に答える 2

4

C# では、WebClient を使用する必要があります。独立して使用できますが、このようなコードを使用すると、毎回 Cookie ヘッダーを追加するという頭痛の種が軽減されます。

public class CookieAwareWebClient : WebClient
{
    private readonly CookieContainer m_container = new CookieContainer();

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        HttpWebRequest webRequest = request as HttpWebRequest;
        if (webRequest != null)
        {
            webRequest.CookieContainer = m_container;
        }
        return request;
    }
}
于 2012-06-07T18:09:38.047 に答える
1

Cookie を含むページに対して HTTP 取得要求を行い、Cookie を保存して、getfile への 2 番目の要求に添付します。

ToDo: サンプルを追加する

于 2012-06-07T17:49:31.857 に答える