Доступ к API Import.io через прокси-сервер

У меня проблемы с использованием API import.io.

Несмотря на то, что мое приложение используется и развернуто в Великобритании, оно вернет (для некоторых магазинов) неверные валюты и данные о ценах из-за развертывания серверов Import.IO в США. Я поговорил со службой поддержки, которая предупредила меня, что я могу разместить прокси-сервер для API импорта.

Мне удалось запустить экземпляр AWS и установить Squid в качестве прокси-сервера. Я изменил свои настройки подключения Firefox и успешно смог просматривать веб-страницы через этот прокси-сервер (также проверил, что мой ip был IP-адресом моего сервера)

Однако я не совсем уверен, как именно я должен вызывать библиотеку импорта из моего приложения.

Приложение построено на PHP, и текущий пример того, как я сгенерировал бы URL для вызова:

public function generateCall( $import_key, $url )
{
return sprintf(
'https://api.import.io/store/data/%s/_query?input/webpage/url=%s&_user=XXXX&_apikey=%s',
$import_key, urlencode( $url ), self::$apikey
);
}

Я звоню на сервер api.import.io напрямую.

4

Решение

Вы можете использовать CURL и получить API.
Затем вы можете найти прокси из определенной страны, чтобы получить данные API по стране.

$user = 'User';
$key = 'key';
$url = 'https://api.import.io/store/data/%s/_query?input/webpage/url=%s&_user=XXXX&_apikey=%s';
$proxy = '127.0.0.1:8888';
//$proxyauth = 'user:password';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);

echo $curl_scraped_page;
4

Другие решения

Если я правильно понимаю вашу проблему, вы пытаетесь получить доступ к ресурсу import.io через прокси-сервер squid.
Есть несколько вариантов сделать это

  1. настройка системного прокси на squid.
  2. установка Http прокси PHP к кальмарам.
1

По вопросам рекламы [email protected]