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);
}