C# 入門 & 実践 / C sharp

311-4. HTTP Cookie を読む。


HttpWebResponse.Cookies["xxx"].Value

で簡単にデータを取得できるはずだったのですが、意外な盲点が・・・
なんで使えないんだ・・・
といろいろ調べたら・・・

HttpWebRequestでは
For security reasons, cookies are disabled by default. If you want to use cookies, use the CookieContainer property to enable cookies.
デフォルトでは使えないと!!!

何すればいいのかな?と思ったら

request.CookieContainer = new CookieContainer();

これだけでした^-^;

まずはサーバ側で、Cookieを発行します。
// PHPのソースです
header("Content-type: text/plain;charset=UTF-8");
setcookie("test","it is a cookie");
echo "hello";
これだけ、testというcookieに文字列を入れただけです。

                HttpWReq = (HttpWebRequest)WebRequest.Create(myurl);
                // Request にこれを入れるだけ!
                HttpWReq.CookieContainer = new CookieContainer();
// +++    中略    +++

                // レスポンス
                HttpWebResponse HttpWResp = (HttpWebResponse)HttpWReq.GetResponse();


                // Cookie 解析 : ちゃんと入ってますね^-^。
                string c_test = "";
                if ( HttpWResp.Cookies["test"] != null)
                {
                    c_test = HttpWResp.Cookies["test"].Value;
                }

次は、サーバへデータを渡してみます。



311-3. HTTP HTTS/SSL データ通信。 « HTTP関連 » 311-5. HTTP Cookie サーバへ渡す。


C# 入門 & 実践 / C sharp