Задать вопрос

Как делать fetch запросы JS через прокси?

Такая проблема, хочу получать данные с сервера, который недоступен по российскому ip. Через vpn все работает, но хотел бы узнать, есть ли возможность обойти без vpn, используя прокси сервер. Если да, то как?
Я делаю fetch запрос на сервер, пытался через https-proxy-agent, ничего не меняется, также не хочет загружать...
import {HttpsProxyAgent} from 'https-proxy-agent';
export async function getLinkApi() {
  try {
    // let response = await fetch("https://livefootball.su/wp-json/wp/v2/pages");
    let response = await fetch('https://livefootball.su/wp-json/wp/v2/pages',{ agent:new HttpsProxyAgent('http://176.31.129.223:8080')});
    const data = await response.json();
    let link = "";


Может есть какая-то альтернатива?
  • Вопрос задан
  • 2082 просмотра
Подписаться 6 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
i229194964
@i229194964
Веб разработчик
import fetch from 'node-fetch'; // Подключите библиотеку fetch, если еще не подключили
import { HttpsProxyAgent } from 'https-proxy-agent';

export async function getLinkApi() {
  try {
    const proxyAgent = new HttpsProxyAgent('http://176.31.129.223:8080');
    const response = await fetch('https://livefootball.su/wp-json/wp/v2/pages', {
      agent: proxyAgent,
      headers: {
        // Если требуется, добавьте дополнительные заголовки
        // 'Authorization': 'Bearer YourAccessToken',
        // 'User-Agent': 'YourUserAgent',
      },
    });

    const data = await response.json();
    const link = ""; // Обработка данных

    return link;
  } catch (error) {
    console.error('Error fetching data:', error);
    throw error;
  }
}
Ответ написан
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
@Nc_Soft
const { ProxyAgent } = require('undici');

const proxy = {
  'host': 'xxx.xxx.xxx.xxx',
  'port': 'xxx',
  'username': 'xxx',
  'password': '***',
};
const proxyAgent = new ProxyAgent({
  uri: `http://${proxy.host}:${proxy.port}`,
  token: `Basic ${Buffer.from(`${proxy.username}:${proxy.password}`).toString('base64')}`,
});

(async () => {
  const data = await fetch('https://httpbin.org/get', { dispatcher: proxyAgent });
  const json = await data.json();
  await proxyAgent.close();
  console.log(json);
})();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы