绕过阻止来自Google App Engine的请求的第三方API

问题描述 投票:0回答:1

我需要从第三方API中提取数据。他们的服务器阻止了来自Google App Engine的请求(所有来自GAE的请求都获得了一个不错的标头,说明它来自App-Engine:|)。始终获得Http 403 Forbidden。

是否可以将App Engine配置为使用某种代理,以避免被拒绝向API发出请求?

我已经在本地测试了Web服务,并且效果很好。 App Engine在其他国家/地区(欧洲西部)运行。

我正在使用HttpURLConnection发出请求。

rest google-app-engine httpurlconnection http-status-code-403
1个回答
0
投票

请注意,App Engine具有一组无法修改的标头,因此,如果其中之一是API阻止请求条件的一部分,那么您将一无所获。

但是,其中有一些可以修改,因此,我建议您进行测试以查看是否确实如此,因为这将给您带来很多麻烦。您可以在Outbound Requests文档中找到有关App Engine“必须具有”出站标头的更多信息。

由于您提到了App Engine应用的位置(欧洲西部),因此我也倾向于认为这可能是问题的原因。我建议进行测试,以查看部署在不同区域中的应用程序是否收到相同的响应。

由于App Engine标头或位置存在问题,您可以通过设置“代理服务器”来解决该问题,该服务器可以托管在Google Compute Engine Instance上,并将服务器配置为删除这些标头

正确的配置将取决于您选择的服务器,例如,Squid为此提供了一个request_header_access。然后,您可以使用Proxy API仅将API调用重定向到代理服务器。 Here您可以找到有关如何使用代理API的很好的解释。

注意删除标头与[]相抵]也很重要,因此在决定如何进行操作之前,最好先确定为什么目标API具有来自App Engine的调用有此限制”。 >

我希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.