【问题标题】:python requests response.url times outpython请求response.url超时
【发布时间】:2021-03-17 09:02:52
【问题描述】:

根据手册,这是一个有效的 URL: http://aiws.intra.infocamere.it/aiws/rest/registroimprese/bilanci/ricerca/partitaiva

我需要像这样设置partitaIva参数:partitaIva = "XXXXXXXXXXXX"

所以网址变成:http://aiws.intra.infocamere.it/aiws/rest/registroimprese/bilanci/ricerca/partitaiva?partitaIva=XXXXXXXX

在我确定有效的身份验证之后(在网站的通用 url 上尝试,url3)我打印超时的 response.url。

代码如下:

import requests
url2 = "http://aiws.intra.infocamere.it/aiws/rest/registroimprese/bilanci/ricerca/partitaiva"
url3 = "http://login.infocamere.it/eacologin/login.action"
payload2 = {'partitaIva': 'XXXXXXXXX'}
headers = {'User-Agent': 'curl'} 

r = requests.get(url2,
                 auth=('user', 'psw'),
                 params=payload2,
                 headers=headers,
                 stream=True,
                 timeout=10)
print(r.url)
print(r.status_code)

我也确定 URL 是正确的,因为在他们的网站中,他们会按原样生成 URL。

我的问题是如何知道为什么会有超时?什么原因导致超时?甚至 response.status_code 也会超时。

【问题讨论】:

  • 我可以问你为什么你有 url2 和 url3,而你只使用 url2?而且,是的,这似乎与网站所有者有关,而不是请求。
  • @ThomasKlinger 我使用 url3 来证明身份验证有效。没有响应,只有超时,即使删除超时参数也会超时。我在那里用过邮递员和同样的。
  • 好吧,然后问网站的所有者,当您的浏览器和任何 REST 客户端出现超时时,这与请求甚至 Python 无关。
  • @ThomasKlinger 为什么是-1?你确定你的答案吗?
  • 非常确定。当端点没有响应时,它不可能是 Python 或请求的错误。

标签: python-3.x api url python-requests


【解决方案1】:

在这种情况下,要创建 URL 而不是定义 auth 参数来发送凭据,我必须将用户名和密码字典作为标题发送,如下所示:

import requests
url2 = "http://aiws.intra.infocamere.it/aiws/rest/registroimprese/bilanci/ricerca/partitaiva"
headers = {'username': 'user', 'password': 'psw'}
r = requests.get(url2,
                 # auth=(user, psw),
                 params=payload2,
                 headers=headers,
                 stream=True,
                 timeout=10)

【讨论】:

    猜你喜欢
    • 2016-07-10
    • 2011-02-26
    • 2014-10-05
    • 2016-11-19
    • 1970-01-01
    • 2015-06-10
    • 2021-07-23
    • 2015-03-20
    • 1970-01-01
    相关资源
    最近更新 更多