10

WebBrowser を使用してサイトにログインしています。正規表現を使用してデータを取得したいのですが、webRequest は Web ブラウズ Cookie を使用しませんでした。

私の webBrowser は公開されています。webRequest で WebBrowser Cookie を使用する方法はありますか?

4

3 に答える 3

12
    public CookieContainer GetCookieContainer()
    {
        CookieContainer container = new CookieContainer();

        foreach (string cookie in webBrowser1.Document.Cookie.Split(';'))
        {
            string name = cookie.Split('=')[0];
            string value = cookie.Substring(name.Length + 1);
            string path = "/";
            string domain = ".google.com"; //change to your domain name
            container.Add(new Cookie(name.Trim(), value.Trim(), path, domain));
        }

        return container;
    }

これはほとんどのサイトで機能しますが、サブドメインを使用するサイトでは問題が発生する可能性があります.

于 2010-05-11T18:34:52.193 に答える
7

Web リクエストには CookieContainer を使用できます。

 web_cookies = new CookieContainer();
 // Create a 'WebRequest' object with the specified url.                 
 HttpWebRequest myWebRequest = (HttpWebRequest)WebRequest.Create(url);

 myWebRequest.CookieContainer = web_cookies;

お役に立てれば。

わかりました、あなたはログインしたいと思っています。それは別の話です。そのために NetworkCredential を使用できます。

public string get_secure_webpage(string url, string username, string password)
    {
        WebRequest myWebRequest = WebRequest.Create(url);
        NetworkCredential networkCredential = new NetworkCredential(username, password);
        myWebRequest.Credentials = networkCredential;

...

于 2009-03-16T14:15:22.513 に答える
0

これはシルバーライトですか?もしそうなら、Silverlight 3 以降、ブラウザのネットワーク スタックを使用する場合は、Cookie を無料で取得する必要があります。デフォルトでは、WebRequest.Create() メソッドを使用して n HttpWebrequest を作成すると、ブラウザ スタックが取得されます。CreateHTTP メソッドを使用すると、クライアント スタックが取得されることに注意してください。このスタックには、既定ではブラウザーの Cookie が含まれていません (前述のように、それらを取得するにはトリックを実行する必要があります)。

バージョン 3 以降の Silverlight のネットワーク スタックについては、http://msdn.microsoft.com/en-us/library/dd920295(VS.95).aspx参照してください。

于 2010-10-20T22:05:46.200 に答える