Edited at

Titanium.Network.HTTPClientでGETリクエスト

More than 5 years have passed since last update.

sendにparamsを与えると強制的にPOSTリクエストになる。


get_request.js

var url = 'http://cureblack.com/';

var params = {
nagisa : 'honoka'
};
var http = Ti.Network.createHTTPClient(opts);
http.open('GET', url);
http.send(params);

上記のような書き方だとGETのつもりがPOSTになってしまう。

urlにエスケープして継ぎ足してやる必要がある。

XHR風に見えて微妙なところで違うので戸惑う。

生で扱うことはほぼないと思われるので、それぞれのラッパーで適切に処理してやれば問題はないのかな。

こういうのを書いて対応してみた


sendHTTPRequest.js

function sendHTTPRequest(method, url, params, opts){

var http = Ti.Network.createHTTPClient(opts);
if(method == 'GET' && params){
if(!url.match(/\?/)){
url += "?";
}else{
url += "&";
}
var q = [];
var encode = Ti.Network.encodeURIComponent;
for (key in params){
q.push(encode(key) + "=" + encode(params[key]));
}
url += q.join('&');
params = null;
}
http.open(method, url);
http.setRequestHeader('User-Agent', getUserAgent());
return http.send(params);
}