首页 > 解决方案 > 如何使用 Python 请求转到主机的特定路径?

问题描述

我有这个hosthttp://retsau.torontomls.net:7890/并且我想访问http://retsau.torontomls.net:7890/rets-treb3pv/server/login,我怎样才能使用 Python 请求来完成这个?到目前为止,我所有的尝试都失败了。

我也按照这里的解决方案 - Python请求 - 通过服务器IP使用导航站点并想出了这个 -

response = requests.get(http://206.152.41.279/rets-treb3pv/server/login, headers={'Host': retsau.torontomls.net})

但这导致了这个错误: requests.exceptions.ConnectionError: HTTPConnectionPool(host='206.152.41.279', port=80): Max retries exceeded with url: /rets-treb3pv/server/login (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x10a4f6d84>: Failed to establish a new connection: [Errno 60] Operation timed out',))

有趣的是,在 Postman 上一切似乎都运行良好,我可以访问该服务器上的各种 URL,从登录到搜索。

标签: pythonrequestpython-requestspostman

解决方案


您在get调用的 URL 中遗漏了端口号 (7890):

response = requests.get('http://206.152.41.279:7890/rets-treb3pv/server/login', headers={'Host': 'retsau.torontomls.net'})
                                             # ^^^^ Add this

此外,除非您确实有通过 IP 地址访问站点的特定原因,否则将 FQDN 放在 URL 中而不是Host标头中会更有意义:

response = requests.get('http://retsau.torontomls.net:7890/rets-treb3pv/server/login')

推荐阅读