どこが変わった?
SDK 4.0.0まではxhr.setRequestHeader("X-Pointless-Header", "1234");
を複数回実行してもリクエストヘッダは上書きされるだけでした。
var xhr = Ti.Network.createHTTPClient();
xhr.open("GET", "http://www.example.com/somewhere/over/the/rainbow");
xhr.setRequestHeader("X-Pointless-Header", "1234");
xhr.setRequestHeader("X-Pointless-Header", "5678");
xhr.setRequestHeader("X-Pointless-Header", "abcd");
xhr.send();
実際にこんなコードを書いたら有罪間違いなしですが、とにかく今までは同じキーのリクエストヘッダを指定した場合、元の値は上書きされて、サーバ側に届くリクエストは"HTTP_X_POINTRESS_HEADER"=>"abcd"
でした。
ところが、4.1.0以降は上書きではなく追記されるようになったので"HTTP_X_POINTRESS_HEADER"=>"1234, 5678, abcd"
という値が届くことになります。
普通、ここにはREST APIとやりとりするための認証用キーが入ったりするので、うっかり別の値を追記してしまうと大変まずいことになります。
Android版だけのバグかと思ったらiOSでも同じ動きだったので、きっと仕様が変わったのでしょう。互換性のない変更は必ず目立つ場所に掲示してもらいたいものですが、きっとアルファ・ケンタウリあたりに50年前から貼り出されていた1のでしょう。