移行先サイト
各種Web APIにつなげるために必須となるHTTPのクライアントとなるHTTPClientですが、 Android,iOSで動作上の違いがあります。
ヘッダのセットとsendでバイナリの送信である程度はファイルアップロードに使えますが、 データパートをさらに設定する場合は以下のページを参考にします。
var xhr=Titanium.Network.createHTTPClient(); xhr.open('GET', 'http://myurl'); xhr.setRequestHeader('Authorization', 'Basic' + Titanium.Utils.base64encode(username + ':' + password) ); xhr.send();
ver2.1.1
Androidでカメラで撮った画像などをsend(bynariData)でアップロードするとなぜか15byteのファイルが作成されてしまいます。
この15byteという数字が何かと思っていたのですが“[Ti Blob Object]“という文字列ことがわかりました。
つまり、httpClient.send(blobData) と実行した際にはblobDataを文字列出力した値がバイナリの代わりに送られているのです。 iOSでは問題がないので、記述方法に間違いがあるというわけではなさそうです。
上記のように問題はにはなっているのですが修正は2.2ということになるようです。なおPUT限定のように書いてありますが、POSTも同じ挙動です。
BlobではなくFileを指定しても結果は同じです。(ファイルサイズは増えます)
send({image:bynaryData})のようにオブジェクトにすると送られるのでサーバ側をいじれる場合は、対応はできそうです。