LoginSignup
6
6

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-03-25

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6