以下の内容はhttps://kazzz.hatenablog.com/entry/20061020/p1より取得しました。


CookieContainer.SetCookies

標題のメソッドだが、Cookieの仕様と制限を忘れていると手痛い目に合うので注意が必要だ。
例えば以下のような、サーバでキーと値のペアを取り出すための、複合値クッキーを用意したとしよう。有限なリソースであるCookieを、効率よく使うのによく使う手だと思う。

SomeCookie=Key1:Value1,Key2:Value2,Key3:Value3;

このクッキーをサーバに送信するためにCookieContainerにセットするコードを書いたとする。

string cookies = "SomeCookie=Key1:Value1,Key2:Value2,Key3:Value3;";
if (cookieHeaders.Length > 0)
{
    container.SetCookies(new Uri("http://hoge.com/hogehoge"), cookies);
}

このCookieは論理的には"SomeCookie"という、一つのCookieとして扱われるのを期待するのだが、実際にセットされたCookie

SomeCookies = Key1:Value1
Key2:Value2 =
Key3:Value3 =

このように、予期していないフォーマットの3つのクッキーとしてサーバに送出されてしまうのだ。
SetCookiesメソッドのリファレンスをみれば、なるほど納得するのだが、シグネチャに文字列パラメタがあると、そのままセットされると思ってしまうのが人の悲しさだ。




以上の内容はhttps://kazzz.hatenablog.com/entry/20061020/p1より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14