Как подключить прокси-сервер для запроса узла js [duplicate]

Координаты текстуры определяют точку в изображении текстуры, которая будет соответствовать вершине, для которой вы указываете. Подумайте о прямоугольном резиновом листе с напечатанным на нем текстурным изображением, где длина каждой стороны нормализована до диапазона 0-1. Теперь предположим, что вы хотите нарисовать треугольник, используя эту текстуру. Вы возьмете 3 булавки и поместите их в резиновый лист в позиции каждой из желаемых координат текстуры. (Скажите [0, 0], [1, 0] и [1, 1]), затем переместите эти контакты (не вынимая их) в нужные координаты вершин (скажите [0, 0], [0,5, 0] и [ 1, 1]), так что резиновый лист растягивается и изображение искажается. Это в основном то, как работают текстурные координаты.

Если вы используете текстурные координаты больше 1, и ваша текстура настроена на повторение, то это как если бы резиновый лист был бесконечным по размеру, а текстура была покрыта черепицей. Поэтому, если ваши координаты текстуры для двух вершин равны 0, 0 и 4, 0, тогда изображение должно повторяться 4 раза между этими вершинами.

@ b1nary.atr0phy Изображение для всех вас наглядных мыслителей!

18
задан Victor 10 March 2015 в 14:26
поделиться

3 ответа

Ниже приведен пример настройки ( https://github.com/mikeal/request/issues/894 ):

//...some stuff to get my proxy config (credentials, host and port)
var proxyUrl = "http://" + user + ":" + password + "@" + host + ":" + port;

var proxiedRequest = request.defaults({'proxy': proxyUrl});

proxiedRequest.get("http://foo.bar", function (err, resp, body) {
  ...
})
29
ответ дан Victor 16 August 2018 в 10:03
поделиться

Принятый ответ не является неправильным, но я хотел пройти по альтернативе, которая удовлетворяла немного другой потребности, которую я нашел.

В моем проекте, в частности, есть массив прокси-серверов на выбор, не только один. Поэтому каждый раз, когда я делаю запрос, нет смысла повторно устанавливать объект request.defaults. Вместо этого вы можете просто передать его непосредственно в параметры запроса.

var reqOpts = {
    url: reqUrl, 
    method: "GET", 
    headers: {"Cache-Control" : "no-cache"}, 
    proxy: reqProxy.getProxy()};

reqProxy.getProxy() возвращает строку в эквивалент [protocol]://[username]:[pass]@[address]:[port]

Затем выполните запрос

request(reqOpts, function(err, response, body){
    //handle your business here
});

Надеюсь, это поможет кому-то, кто идет по этому вопросу с той же проблемой. Приветствия.

12
ответ дан John 16 August 2018 в 10:03
поделиться
  • 1
    Является ли reqProxy другим пакетом? – sidonaldson 7 July 2015 в 08:49
  • 2
    @sidonaldson Нет, reqProxy - это всего лишь модуль, который я написал для обслуживания строки прокси. – James LeClair 8 July 2015 в 15:30
  • 3
    работаю, спасибо =) – Luiz Freneda 18 September 2015 в 14:22

параметр proxy принимает строку с URL-адресом вашего прокси-сервера, в моем случае прокси-сервер находился в http://127.0.0.1:8888

request({ 
    url: 'http://someurl/api',
    method: 'POST',
    proxy: 'http://127.0.0.1:8888',
    headers: {
        'Content-Length': '2170',
        'Cache-Control': 'max-age=0'
    },
    body: body
  }, function(error, response, body){
    if(error) {
        console.log(error);
    } else {
      console.log(response.statusCode, body);
    }

    res.json({ 
      data: { body: body } 
    })
});
5
ответ дан steven iseki 16 August 2018 в 10:03
поделиться