Node.js https не работает, тогда как браузер, `curl` &` wget` успешно? - PullRequest
0 голосов
/ 24 декабря 2018

Последующие запросы:

$ url='https://svn.tools.ietf.org/svn/tools/xml2rfc/trunk/cli/xml2rfc/data/xml2rfc.css'
$ curl "$url"
$ wget -qO - "$url"
$ python -c 'import webbrowser; webbrowser.open("'"$url"'", new=2)'

Отказные запросы:

$ echo 'require("https").get("'"$url"'", res => console.info("statusCode:", res.statusCode, ";"));' | node

Вывод сбойных запросов:

statusCode: 403 ;

1 Ответ

0 голосов
/ 24 декабря 2018

Я предполагаю, что вы пытаетесь получить файл с удаленного сервера, к которому у вас нет доступа.Вы должны установить пользовательский агент, когда вы звоните на удаленный сервер с пакетом nodejs https.Попробуйте этот код:

let https = require('https')
let pageUrl = 'https://svn.tools.ietf.org/svn/tools/xml2rfc/trunk/cli/xml2rfc/data/xml2rfc.css'
let url = require('url')

let options = url.parse(pageUrl)
options.headers = {
    'User-Agent': 'request'
};
let req = https.get(options, (res) => {
    console.log("statusCode: ", res.statusCode);
    console.log("headers: ", res.headers);
    let data = ""
    res.on('data', (chunk) => {
        data += chunk
    })

    res.on('end', (chunk) => {
        console.log("ended")
        console.log(data)
    })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...