【问题标题】:Accessing Import.io API through a proxy server通过代理服务器访问 Import.io API
【发布时间】:2015-03-06 15:37:34
【问题描述】:

我在使用 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 服务器。

【问题讨论】:

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


【解决方案1】:

您可以使用 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;

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,您正试图通过您的 squid 代理访问 import.io 资源。 这样做有多种选择

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

    【讨论】:

    • 嗨 Shimon,查看导入帮助文档我认为选项 2 对我没有帮助,因为我只是调用相同的导入 URL - 我需要根据 API 实际托管代理服务器“如果 CNAME 不适合您,您可以为 API 托管代理服务器。”我已将 squid 设置为代理服务器 - 将代理服务器托管到 APIS 的推荐设置在原始帖子的附加文章中,但是我使用的是 ubuntu,似乎找不到设置方法。跨度>
    猜你喜欢
    • 2016-01-06
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    相关资源
    最近更新 更多