lim*_*gni 5 python python-requests
我遇到的问题是我所在的服务器无法访问防火墙。我在任务requests中使用模块celery。
我需要从另一台服务器获取一组图像。该服务器正在侦听port 8080. 所以,如果我尝试通过这样做来获取图像:
requests.get('http://SERVERIP:8080/blabla/img.jpg', stream=True)
我收到此错误:
HTTPConnectionPool(host='SERVERIP', port=8080): Max retries exceeded with url:
/blabla/img.jpg (Caused by <class 'socket.error'>: [Errno 110] Connection timed out)
但如果尝试从其他来源获取图像,例如:
requests.get('http://OTHERSERVERIP/blabla/img.jpg', stream=True)
不是具有图像的服务器的问题,因为我已经从其他服务器尝试过并且它有效。问题(我几乎可以肯定)是 requests 库试图使用 url (8080) 中的端口作为地址源来获取图像。如果远程主机 url 请求中的端口不明确,请对地址源和远程主机使用端口 80,并且一切正常。
关于如何强制库在所有情况下使用 por 80 (在地址源上,意味着传出连接,发出请求的服务器用来侦听的端口)有什么想法吗?
正如 Kroolik 的评论所说: OP 希望将 tcp 套接字绑定到本地主机上的端口 80,并使用该套接字向其他服务器发送 http 请求
编辑
在我读完所有评论后,我想我可能不理解这个问题。最基本的情况是,如果尝试访问侦听端口 80 或 443 以外的任何 URL,我会收到错误,并且我需要连接到侦听端口 8080 的应用程序的 URL。此时我已经解决了更改其他服务器上的一些内容的问题,但我真的很想了解这里的问题是什么!谢谢!
| 归档时间: | 
 | 
| 查看次数: | 4483 次 | 
| 最近记录: |