3

ユーザーが私のWebサイトにログインした後、アプリがリンクに移動してユーザー名を取得するアプリを構築しているので、アプリで彼を認識します。

ユーザーとしてブラウザからログインし、そのブラウザに同様のものを貼り付けると、ユーザー名のページが表示されますが、コードから Web リクエストを実行すると空のページが表示されます。

私の質問は、ブラウザーとして URL を開く方法、または特定のブラウザーで Cookie の値を取得する方法です。

私は試してみました

string s= GetHtmlPage("http://www.somedomain.com/account/show_cookies.php","Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)");

 static string GetHtmlPage(string strURL,string browser)
        {
            String strResult;
            System.Net.WebResponse objResponse;

            System.Net.WebRequest objRequest = System.Net.HttpWebRequest.Create(strURL);
            ((System.Net.HttpWebRequest)objRequest).UserAgent =browser;
            objResponse = objRequest.GetResponse();
            using (System.IO.StreamReader sr = new System.IO.StreamReader(objResponse.GetResponseStream()))
            {
                strResult = sr.ReadToEnd();
                sr.Close();
            }
            return strResult;
        }

しかし、それも空白のページを返します。

4

1 に答える 1

1

HttpClientCookieContainerを使用する必要があります

CookieContainer cookies = new CookieContainer();
HttpClientHandler handler = new HttpClientHandler();
handler.CookieContainer = cookies;

HttpClient client = new HttpClient(handler);
HttpResponseMessage response = client.GetAsync("http://google.com").Result;

Uri uri = new Uri("http://google.com");
IEnumerable<Cookie> responseCookies = cookies.GetCookies(uri).Cast<Cookie>();
foreach (Cookie cookie in responseCookies)
     Console.WriteLine(cookie.Name + ": " + cookie.Value);

Console.ReadLine();
于 2013-06-13T21:43:55.963 に答える