4

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

尽管我的应用程序在英国使用和部署,但由于 Import.IO 的服务器部署在美国,它会返回(对于某些商店)不正确的货币和价格数据。我与那里的支持团队进行了交谈,他们很有帮助地告诉我,我可以为 Import API 托管一个代理服务器。

我设法让 AWS 实例运行并安装了 Squid 作为代理服务器。我更改了我的 Firefox 连接设置,并成功地通过此代理服务器浏览了网页(还验证了我的 ip 是我的服务器的 IP)

但是,我不完全确定我应该如何从我的应用程序中调用 Import 库。

该应用程序是用 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

2 回答 2

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;
于 2015-03-16T04:22:48.113 回答
1

如果我正确理解您的问题,您正试图通过您的 squid 代理访问 import.io 资源。有几种选择可以做到这一点

  1. 将系统代理设置为 squid。
  2. PHP 的 http 代理设置为 squid。
于 2015-03-10T18:10:38.833 回答