socket.cork не является функцией при попытке инициировать запрос через прокси socks (TOR) - PullRequest
0 голосов
/ 12 января 2019
_http_outgoing.js:797
  socket.cork();
         ^

TypeError: socket.cork is not a function
    at ClientRequest._flushOutput (_http_outgoing.js:797:10)
    at ClientRequest._flush (_http_outgoing.js:776:16)
....

Ошибка выше при попытке http.get () или request () с использованием прокси-агента SOCKS, ранее созданного с помощью библиотеки «proxysocket».

Я пытаюсь создать работающий агент, который будет использовать socket.io или ws или http для подключения через прокси SOCKS. Я пробую библиотеку "proxysocket", и ее агент выдает мне ошибку выше.

let agent = proxysocket.createAgent("127.0.0.1", 9050);
request("http://www.google.com", {agent: agent}, (err, res, body) => {
    if (err){
        console.log("Http request error: " + err);
    } else{
        console.log("Http request connection success!");
        console.log('statusCode:', response && response.statusCode);
        console.log(body)
    }
});

1 Ответ

0 голосов
/ 13 января 2019

Хорошо, вот решение. Я перепробовал множество прокси-агентов, и единственный из них - «socks5-http-client».

Другие агенты выдавали всевозможные ошибки при использовании протокола SOCKS5.

const http = require("http");
const Agent = require("socks5-http-client/lib/Agent"); // Constructor 
let agent = new Agent({
        socksHost: 'localhost', // Defaults to 'localhost'.
        socksPort: 9050 // Defaults to 1080.
    });
    http.get({
              hostname: "www.google.com", // Can be also onion address if used behind TOR
              port: 80,
              agent: agent,
              method: 'GET'
          }, (res)=>{
               console.log("Connected");
               res.pipe(process.stdout);
               //Process res
           }).on('error', (err) => {
               console.error(`Got error: ${err.message}`);
           });

Такой агент может быть передан в любые библиотеки, которые используют http.Agent, например socket.io, ws и т. Д.

...