【问题标题】:How to proxy for OpenWeatherMap API如何代理 OpenWeatherMap API
【发布时间】:2026-02-08 04:30:01
【问题描述】:

我有一个程序,我想在角落显示当前的天气信息。该代码在我自己的计算机上运行,​​但在我的工作笔记本上我无法建立连接,我收到此错误:

requests.exceptions.ProxyError: HTTPSConnectionPool(主机='api.openweathermap.org',端口=443):最大 url 超出重试次数: /data/2.5/weather%5Bhttps://api.openweathermap.org/data/2.5/weather%5D?APPID=abc123 d88&q=Frankfurt&units=metric(由ProxyError引起('无法连接到 代理。', NewConnectionError(' 的对象:无法建立新连接: [WinError 10060]

我发现这是一个解决方案,我听起来很有希望: Using an HTTP Proxy

不幸的是,我不明白我需要如何实施它,因为我不了解公司的互联网设置。类似的东西:

response = requests.get(url, params=params, proxies={"http": "12.34.56.78:1234", "https": "12.34.56.78:1234"})

我所知道的是我需要在 PyCharm 的终端中设置它以使用 pip install,它似乎相关:

设置 HTTP_PROXY=12.34.56.78:1234
设置 HTTPS_PROXY=12.34.56.78:1234

我不太了解网络设置,但它可以工作。我是否也必须为该程序执行此操作?错误消息的端口(443)与我在上面输入的端口(1234)不匹配。

你能帮我吗?将不胜感激! :-)

【问题讨论】:

  • 您不必在终端中设置代理 - 它应该与 get( proxies={...}) 一起使用,但通常问题是免费代理服务器已经过时并且它们不起作用。只有付费代理服务器才能正常工作。或者您可以尝试使用Tor Network 作为代理服务器。
  • requests 中,您可能必须在地址中使用http://https:// - proxies={"http": "http://12.34.56.78:1234", "https": "https://12.34.56.78:1234"}

标签: python api proxy openweathermap


【解决方案1】:

我解决了:

我在全局范围内定义了这个:

proxies = {'http':'http://12.34.45.67:1234','https':'http://12.34.45.67:1234'}

我的要求是这样的:

response = requests.get(url, params=params, proxies=proxies)

我之前在代码中有一些拼写错误,这也没有帮助......

【讨论】:

  • 全局定义并不重要 - 但现在您使用前缀为 http:// 的地址,它可能会改变一切。
  • 确实如此。反正我很开心:)