0

私は Cookie の経験がなく、Cookie ( httpwebrequest POSTメソッドから取得したもの) を使用して Web サイトにアクセスしようとしています。POSTメソッドでは、認証部分を実行し、最後に Cookie を取得します。この Cookie を使用して Web サイトにアクセスする方法がわかりません。これは、このHttpWebRequest POST Methodに似ています。

誰かがアドバイス、ポインタ、またはサンプルコードを教えてくれることを願っています。ご協力ありがとう御座います。

これまでに行ったコードは次のとおりです。

private void GetResponseCallback(IAsyncResult asynchronousResult)
        {
            HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
            // End the operation
            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);

            Stream streamResponse = response.GetResponseStream();
            StreamReader streamRead = new StreamReader(streamResponse);

            using (IsolatedStorageFile isf =
               IsolatedStorageFile.GetUserStoreForApplication())
            {
                using (IsolatedStorageFileStream isfs = isf.OpenFile("CookieExCookies",
                    FileMode.OpenOrCreate, FileAccess.Write))
                {
                    using (StreamWriter sw = new StreamWriter(isfs))
                    {
                        foreach (Cookie cookieValue in response.Cookies)
                        {
                            sw.WriteLine(cookieValue.ToString());
                        }
                        sw.Close();
                    }
                }
            }
            // Close the stream object
            streamResponse.Close();
            streamRead.Close();
            response.Close();

            //allDone.Set();
        }

TextBox の Cookie ストア

private void ReadFromIsolatedStorage()
    {
        using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
        {
            using (IsolatedStorageFileStream isfs =
               isf.OpenFile("CookieExCookies", FileMode.OpenOrCreate))
            {
                using (StreamReader sr = new StreamReader(isfs))
                {
                    tbTesting.Text = sr.ReadToEnd();
                    sr.Close();
                }
            }
        }
    }
4

1 に答える 1

0

CookieContainer クラスを使用して、Cookie を取得および設定できます。それを使用すると、すべてが処理されます。Cookie を明示的に手動で設定する必要はありません。以下のコードを確認してください。

まず、CookieContainer クラスのインスタンスを作成します。

CookieContainer cookieContainer = new CookieContainer();

次に、それを認証に使用し、認証に使用する各リクエストに割り当てます

//Login request to get the cookie
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://mydomain.com/login.svc");
req.Method = "POST";
if (req.SupportsCookieContainer)
   req.CookieContainer = cookieContainer;
.. rest of your code..

//Any other request which needs a cookie
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://mydomain.com/getuserdata.svc");
req.Method = "POST";
if (req.SupportsCookieContainer)
   req.CookieContainer = cookieContainer;
.. rest of your code..
于 2013-03-27T11:13:01.747 に答える