Python requests.exception.ConnectionError:连接中止“BadStatusLine"

2022-01-17 00:00:00 python http-headers http

问题描述

我正在尝试使用 Python 请求模块发出 Http GET 命令来访问一些基于 REST 的 API.url 在 RESTClient 上运行良好,但是当我在 python 中使用相同的 url 时,出现连接错误.

I am trying to use the Python requests module to issue Http GET commands to access some REST based APIs. The urls are working fine on a RESTClient but when I use the same url in python, I get a connection error.

我要执行的代码是:

payload={"mac":new_mac,"token":token}
userloginurl="http://192.168.1.40:9119/uid"
r=requests.get(userloginurl,params=payload)
print(r.url)

如果我使用 RESTClient 测试此 url,我会在响应标头中获得 200 OK 状态代码以及更多字段.但这不适用于 python 请求.错误的回溯如下图:

If I test this url using RESTClient, I get a 200 OK status code in the response header along with some more fields. But this is not working with python requests. The traceback of the error is shown below:

Traceback (most recent call last):
File "getAPids.py", line 34, in <module>
r=requests.get(userloginurl,params=payload)
  File "C:Usersgarvitabpythonlibsite-packagesequestsapi.py", line 65, in
 get
return request('get', url, **kwargs)
File "C:Usersgarvitabpythonlibsite-packagesequestsapi.py", line 49, in
request
response = session.request(method=method, url=url, **kwargs)
File "C:Usersgarvitabpythonlibsite-packagesequestssessions.py", line 4
61, in request
resp = self.send(prep, **send_kwargs)
File "C:Usersgarvitabpythonlibsite-packagesequestssessions.py", line 5
73, in send
r = adapter.send(request, **kwargs)
 File "C:Usersgarvitabpythonlibsite-packagesequestsadapters.py", line 4
15, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine("''",
))

我查找了问题的原因.可能是收到的响应格式不正确.有没有办法解决这个问题?

I looked up for the cause of the problem. Possibly, the response received is not formatted correctly. Is there a way to handle this problem?

提前致谢.


解决方案

问题出在 url.这个连接是为了通过 https 建立的,我在 python 脚本中使用了 http.因此问题.

The problem was with the url. This connection was meant to be established over https and I was using http in the python script. Hence the issue.

相关文章