【问题标题】:Using the Google Translate API v2 via a proxy server通过代理服务器使用 Google Translate API v2
【发布时间】:2013-12-22 02:44:36
【问题描述】:

我有一个调用 Google Translate API v2 的 perl 脚本。我有一把钥匙,这个脚本在家里可以正常工作。但它在工作中失败了,唯一的区别是我在 VPN 上并且必须在工作中使用代理服务器。我的 perl 脚本设置了代理服务器,并且已经使用许多 URL 进行了测试,并且连接到其中任何一个都没有问题。我还使用 BableFish Translate API 测试了相同的脚本,并且该脚本再次运行良好。但是,所有访问 Google Translate API v2 的尝试都失败了。

失败信息是:

“失败:翻译后端失败;不成功的语言调用:500 连接失败:连接:连接超时;连接超时 /usr/lib/perl5/site_perl/5.10/Lingua/Translate/Google.pm 第 246 行

关于为什么脚本在工作时仅使用 Google Translate API v2 失败的任何想法?
关于如何调试的任何建议?

这是我的主要管理员

服务器应用程序密钥(带 IP 锁定)
API 密钥:..为安全起见已删除..
IP:允许任何 IP
激活时间:2012 年 1 月 31 日下午 2:39
激活者:你

【问题讨论】:

  • 请求的 url 是否适用于浏览器?
  • 是的,使用 Google Translate API v2 的 URL 确实适用于使用同一代理服务器的浏览器。我发现这很奇怪,它适用于浏览器但不适用于程序。

标签: perl google-translate


【解决方案1】:

也许代理会删除/更改请求中的一个或多个标头。

尝试使用 mozilla 连接到链接,并使用 Live Httpd 标头插件检查在家和 $work 设置和接收的标头。

在家中和 $work 中打印出脚本中的标题并搜索差异。

问候,

【讨论】:

  • 我也认为这可能是标题被修改的问题。正如您在上面看到的,Google Translate API URL 确实适用于工作中的浏览器。当然,浏览器使用与我的程序相同的代理服务器。我希望找到一些我可以连接到我的程序的网页,它会带来收到的标题。然后我可以按照你的建议去做,那就是在工作和家里试试这个程序,看看标题是否匹配。你知道任何会打印传入标题的网站吗?
  • 我终于让它工作了。我只设置了 http_proxy,但谷歌翻译 API 使用了 https_proxy。另外,我删除了“$ua->env_proxy”。在这两个更改之后,一切正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2011-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-10
相关资源
最近更新 更多