Meteor.http.params sybmol筛选

时间:2013-07-06 05:00:17

标签: rest meteor

加号转换为%2B,我的请求出错了网址。 如何解决? 代码如下。

// Result params:
// ?game=Dota%2B2&limit=1
// Error in game. Plus converts to %2B
// How Fix?

Meteor.call("getStreams", "Dota+2", "1", function(e, i) {

});

Meteor.methods({
    getStreams: function(game, limit) {
        var response = Meteor.http.call("GET",
            "https://api.twitch.tv/kraken/streams",
            {params: {'game': game, 'limit': limit}});

        return response.data.streams.map(function(i) {
            return {
                "game" : i.game,
                "viewers" : i.viewers,
                "title": i.channel.display_name
            }
        });
    }
});

请求我需要的网址:https://api.twitch.tv/kraken/streams?game=Dota+2&limit=1

1 个答案:

答案 0 :(得分:0)

这有点像黑客,但你可以自己组装GET URI:

    var response = Meteor.http.call("GET",
        "https://api.twitch.tv/kraken/streams?game=" + game + "&limit=" + limit);

但请注意,变量不再进行URI编码;这允许+通过,但它也可能允许无效字符滑过。如果可以通过用户输入设置它们,请小心在此呼叫之前验证gamelimit