アドウェイズの波切です。皆さん、こんにちは。
実は今回は、急遽代打でブログを書くことになったのですが、幸いなことに僕が所属しているチームでは、毎週みんなで技術情報についてTipsを出し合っているので、そこから1本ストックを持ってくることができました!
リーダーに感謝!チームに感謝です。
・iPhoneでCookieを扱う2つの方法
さて、iPhoneでは、Cookieを扱うのに(私の知る限り)2つの方法があります。
①NSHTTPRequestのsetAllHTTPHeaderFieldsという関数でCookieのヘッダー情報
を書き込む方法
②NSCookieStorageを使って、送信するCookieを管理する方法
最初は、サーバサイドのプログラミングの発想で、RequestオブジェクトのCookieを操作する方法を思いついて、①の方法で直接Cookieを送るコードを書いていたのですが、この方法だと、HTTPのヘッダーを直接書き換えないといけないため、CookieをParseする必要が出てきたりして、非常に手間がかかります。
大変なので、もう少し別の方法がないか調べたところ、
クライアントで保存するCookieを書き換える、②の方法を見つけました。
・サンプルコード
サンプルコードは、下記のようになります。
・Cookieを生成
・Cookieを取得
・Cookieを全て消す(セッションID以外)
・雑感
CookieがNSArrayで保持されているため、ループで回して処理をしなければならないのが残念です。
実際に業務で使う際は、Dictionaryで処理を行えるようにラッパーを用意した方が良いかもしれませんね。
また、今回ご紹介したどちらの方法でもありえるのですが、僕が嵌った点として、誤ってSessionIDを消してしまうと、Web側でセッションが取れなくなってしまうので、ご注意を…。