NodeJS使用请求模块获取包含中文的URL

时间:2015-05-26 14:06:25

标签: javascript node.js

我想使用看起来像https://example.com/book/search/q?={bookName}的RESTful API。我使用节点模块request模拟POST请求。当bookName是完整的英语时,它运作良好。但是当bookName包含中文时,它就不起作用了。这是我的代码:

request({
    uri: 'https://example.com/book/search?q=' + bookName,
    method: 'GET'
}, function (error, response, body) {
    if (!error && response.statusCode == 200)
        Do something ...
});

提前致谢。

1 个答案:

答案 0 :(得分:4)

您必须对名称进行编码。使用

uri: 'https://example.com/book/search?q=' + encodeURIComponent(bookName),