1. ホーム
  2. python

[解決済み] Python requests.exception.ConnectionError: 接続が中断された "BadStatusLine" です。

2022-02-25 11:43:19

質問

Pythonのrequestsモジュールを使って、RESTベースのAPIにアクセスするためにHttp GETコマンドを発行しようとしています。RESTClient上では問題なく動作していますが、Pythonで同じURLを使用すると、接続エラーが発生します。

私が実行しようとしているコードは、次のとおりです。

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

このURLをRESTClientでテストすると、応答ヘッダに200 OKのステータスコードと、さらにいくつかのフィールドが表示されます。 しかし、これはpythonのリクエストで動作しません。エラーのトレースバックは以下の通りです。

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

原因を調べてみました。可能性としては、受信した応答が正しくフォーマットされていないことです。この問題に対処する方法はありますか?

よろしくお願いします。

どのように解決するのですか?

問題はurlにありました。この接続はhttpsで確立されることになっていて、私はpythonスクリプトでhttpを使用していました。そのため、問題が発生しました。