Настройка Nodejs и Express Proxy для вызова REST API - PullRequest
0 голосов
/ 27 сентября 2019

Я вызываю API REST сайта themoviedb.org, когда я делаю запрос через свою офисную сеть, я получаю сообщение об ошибке, как показано ниже:

{"errno":"ETIMEDOUT","code":"ETIMEDOUT","syscall":"connect","address":"54.164.67.128","port":443}

Когда я делаю запрос черезВ моей домашней сети я получаю ожидаемый результат.Я знаю, что мне нужно включить настройки прокси, но я не знаю, как это сделать, или я должен сделать это в своей системе или в коде.Пожалуйста помоги.Мой код, как показано ниже:

const apiKey = "----tmdb API KEY----";
const https = require("https");
const { URL }= require('url');
function getMovieByID(id, callback){
    console.log("Inside getMovieByID ID: "+ id);
    var options = new URL("https://api.themoviedb.org/3/movie/"+id+"?api_key="+apiKey);
    var req = https.request(options, function (res) {
        let chunks = [];
        res.on("data", function (chunk) {
            chunks.push(chunk);
        });
        res.on("end", function () {
            let body = Buffer.concat(chunks);
            callback(null, body.toString());
        });
    });
    req.on("error", function(err) {
        callback(err, null);
    });
    req.end();
};
getMovieByID("75780", (err,data) =>{
    var temp ="";
    if (err != null){
        console.log("Error:", JSON.stringify(err));
        process.exit()
    }else{
        //console.log("Movies:\n",data);
        temp = data
    }
    console.log("Result:\n", temp)
    process.exit()
});

1 Ответ

0 голосов
/ 27 сентября 2019

Попробуйте это

    var https = require('https');
    var ProxyAgent = require('proxy-agent');
    var url = "https://api.themoviedb.org/3/movie/"+id+"?api_key="+apiKey
    // HTTP, HTTPS, or SOCKS proxy to use
    var proxyUri = process.env.https_proxy || "https://" + user + ":" + password + "@" + host + ":" + port;;

    var opts = {
        agent: new ProxyAgent(proxyUri)
    };

    // the rest works just like any other normal HTTP request
    https.get(url,opts,function(res){

    });

ПРИМЕЧАНИЕ: proxyUrl, если прокси-сервер не требует имени пользователя и пароля

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...