2015-03-06 4 views
4

У меня возникли проблемы с использованием 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 напрямую.

+0

Я нашел эту статью на сайте IO импорта: http://support.import.io/knowledgebase/articles/255254-cross-domain-issues-in-browsers Он советует мне, как настройте прокси-сервер на nginx, однако у меня уже есть apache и работает. –

ответ

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; 
1

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

  1. установка прокси-сервера для кальмара.
  2. установка PHP's http proxy кальмару.
+0

Привет, Шимон, . Смотря @ документ справки по импорту. Я не думаю, что вариант 2 мне поможет, потому что я просто буду называть тот же URL-адрес импорта. Мне нужно фактически разместить прокси-сервер для API в соответствии с «Если CNAME не вариант для вас, вы можете разместить прокси-сервер для API-интерфейсов ». Я настроил squid как прокси-сервер - рекомендуемая настройка для размещения прокси-сервера для APIS приведена в прикрепленной статье в исходном сообщении, однако я использую ubuntu и не могу найти способ установить это. –

 Смежные вопросы

  • Нет связанных вопросов^_^