Node.js 相当于此 curl 请求
Node.js equivalent of this curl request
我正在尝试使用 HTML validator API。 curl 示例对我来说工作得很好,我可以 运行 它们作为子进程在 Node 中找到。这是相关代码:
var command = ('curl -H "Content-Type:text/html; charset=utf-8" --data-binary @' + file +
' https://validator.w3.org/nu/?out=json');
exec(command, function(err1, out, err2) {
console.log(out);
console.log('done');
});
但是,当我尝试使用标准 HTTP 请求时,无法正常工作。我用 Node.js 的 Unirest 库试过了。这是我使用的代码:
var source = '<html><head><title>a</title></head><body>a</body></html>';
var url = 'http://validator.w3.org/nu/?out=json';
var Request = unirest.post(url);
Request.headers({'Content-Type': 'text/html', 'charset': 'utf-8'});
Request.send(source);
Request.end(res => console.log(res));
响应正文未定义,响应raw_body为空。我不知道我做错了什么,希望得到任何帮助。
有超级代理:
const request = require('superagent');
const body = '<html><head><title>a</title></head><body>a</body></html>';
request.post('https://validator.w3.org/nu/?out=json')
.set('Content-Type', 'text/html; charset=utf-8')
.send(body)
.end((err, res) => {
console.log('got body: ' + JSON.stringify(res.body));
});
似乎验证器。w3.org 不会响应没有 user-agent
header 的请求。添加这个 header:
Request.headers({'Content-Type': 'text/html; charset=utf-8', 'user-agent': 'Node.js'});
或者使用你想要的任何用户代理。
我正在尝试使用 HTML validator API。 curl 示例对我来说工作得很好,我可以 运行 它们作为子进程在 Node 中找到。这是相关代码:
var command = ('curl -H "Content-Type:text/html; charset=utf-8" --data-binary @' + file +
' https://validator.w3.org/nu/?out=json');
exec(command, function(err1, out, err2) {
console.log(out);
console.log('done');
});
但是,当我尝试使用标准 HTTP 请求时,无法正常工作。我用 Node.js 的 Unirest 库试过了。这是我使用的代码:
var source = '<html><head><title>a</title></head><body>a</body></html>';
var url = 'http://validator.w3.org/nu/?out=json';
var Request = unirest.post(url);
Request.headers({'Content-Type': 'text/html', 'charset': 'utf-8'});
Request.send(source);
Request.end(res => console.log(res));
响应正文未定义,响应raw_body为空。我不知道我做错了什么,希望得到任何帮助。
有超级代理:
const request = require('superagent');
const body = '<html><head><title>a</title></head><body>a</body></html>';
request.post('https://validator.w3.org/nu/?out=json')
.set('Content-Type', 'text/html; charset=utf-8')
.send(body)
.end((err, res) => {
console.log('got body: ' + JSON.stringify(res.body));
});
似乎验证器。w3.org 不会响应没有 user-agent
header 的请求。添加这个 header:
Request.headers({'Content-Type': 'text/html; charset=utf-8', 'user-agent': 'Node.js'});
或者使用你想要的任何用户代理。