request库,url有中文时报错The header content contains invalid characters
代码
let request = require('request');
let url = "https://www.baidu.com/s?wd=我是个大天赐,啦啦啦啦啦啦";
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
} else {
console.log(error);
}
});
node version v8.9.0
报错
TypeError: The header content contains invalid characters
at validateHeader (_http_outgoing.js:497:11)
at ClientRequest.setHeader (_http_outgoing.js:501:3)
at new ClientRequest (_http_client.js:173:14)
at Object.request (https.js:240:10)
at Request.start (D:\node_root\socket\node_modules\request\request.js:740:32)
at Request.end (D:\node_root\socket\node_modules\request\request.js:1398:10)
at end (D:\node_root\socket\node_modules\request\request.js:567:14)
at Immediate.<anonymous> (D:\node_root\socket\node_modules\request\request.js:581:7)
at runCallback (timers.js:789:20)
at tryOnImmediate (timers.js:751:5)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最终的结果呢是把中文encodeURI+设置一下UA就好了
URL有中文,可以换个写法:
不用 Request 库的代码如下,可能对你有帮助:
请求不到数据的原因,分析如下:
用 node.js 程序,只请求了一部分数据,请求来页面,没有获得页面上外链的 js 脚本。即使请求得到脚本,也没有能力执行 js 脚本程序,所以没有最终请求到搜索结果。如果想请求到搜索结果,需要对方提供 HTTP API 接口(现在比较常用的是 RESTful API)。换句话说,这个页面或者 URL 地址是给浏览器访问的,不是用来给程序访问的。