通过代理服务器访问Import.io API

时间:2015-03-06 15:37:35

标签: php amazon-web-services proxy squid import.io

我在使用import.io API时遇到问题。

尽管我的应用程序在英国使用和部署,但由于Import.IO的服务器部署在美国,它将返回(对于某些商店)不正确的货币和价格数据。我与那里的支持团队进行了交谈,他们帮助我告知我可以在Import 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服务器。

2 个答案:

答案 0 :(得分: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 :(得分:1)

如果我理解你的问题,你试图通过你的squid代理访问import.io资源。 有几种选择

  1. 将系统代理设置为squid。
  2. PHP's http proxy设置为squid。