Codeigniterでヘッダの扱いでハマった話

仕事でネイティブアプリと通信するAPIのサーバサイド実装をしています。

アプリの強制アップデート機能を実装するために、HTTPヘッダに"App-Version"という項目を追加して、Inputクラスのget_request_headerで取得しようとしました。 最初にやってみた実装は下記の通り。

$this->input->get_request_header('App-Version');

で、取得できませんでした。

とりあえず、出力させてみようということで、下記を実行してみました。

log_message('debug', var_export($this->input->request_headers(), true));

で、ログを確認すると、キーがApp-versionになってました。

$this->input->get_request_header('App-version');

にしたら、無事、取得出来ました。


request_headersメソッド内のコメントを見ると、

// take SOME_HEADER and turn it into Some-Header

ってかいてあったから、versionの頭も大文字になるものだとばっかり。。。

CodeIgniterのバージョンは、2.1.4です。

最新のバージョンでどうなってるかはわかんないですが、こうゆうことが、ちらほら出てくるので、CodeIgniterはあんまり好きになれないんですよねー。。。