先日言及したHTMLパーサのテストに自分の日記のサイトを使用したのだが、簡単に接続できるだろうと思っていたのに反して、HTTPのステータスコードに302が戻ってくる。
テストにはAndroid SDKに添付されているエミュレータ(AVD)を使用しているが、PCブラウザのFiddlerのように便利なツールは無いので、Microsoft Network Monitorでエミュレータの通信をキャプチャしてみることにした。
- Http: Response, HTTP/1.1, Status: Moved temporarily, URL: /Kazzz/
ProtocolVersion: HTTP/1.1
StatusCode: 302, Moved temporarily
Reason: Moved
Date: Fri, 02 Jul 2010 15:52:37 GMT
Server: Apache
Location: /Kazzz/touch
+ ContentType: text/html; charset=ISO-8859-1
Set-Cookie: .....; path=/; expires=Thu, 27-Jun-30 15:52:37 GMT; domain=.hatena.ne.jp
Vary: Accept-Encoding
Keep-Alive: timeout=7, max=5
Connection: Keep-Alive
TransferEncoding: chunked
HeaderEnd: CRLF
+ chunkSize: 303
+ ChunkPayload: HttpContentType = text/html; charset=ISO-8859-1
FooterEnd: CRLFそっか、実機と同様でモバイル機器として扱われる訳で、/Kazzz/touchにリダイレクトする必要があるんだな。
しかしこれはhatenaに限ったことではなく、クライアントのエージェントによってサイトを切替えるのはよくあるケース。今後Androidクライアントでサーバに接続する際には避けて通れない訳で、テストに選んでおいて良かった。
しかし、はてさてリダイレクトを扱うことを考えなくてはならないなんて何時以来のことだろう。