Pythonでrequests.exceptions.InvalidSchema: No connection adapters were found for ”
今回はPythonのrequestsモジュールを使用しているときに「requests.exceptions.InvalidSchema: No connection adapters were found for "」というエラーが起きたときの対処法についてご紹介いたします。
Pythonでrequests.exceptions.InvalidSchema: No connection adapters were found for "
Pythonでrequestsモジュールを使用してAPIを呼び出そうとしたときのことです。
表題のエラーが出てしまいました。
実は直し方は簡単です。
このエラーはrequestsに渡すURL「http://」もしくは「https://」がないことが原因です。
私はrequestsモジュールを使用したときに、次のようなソースコードを書いていました。
URLに注目です。
1 2 3 |
response = requests.post( request.get_host() + '/admin/account/user/testurl', {'test': test}) |
上記のサンプルの場合、例として次のURLに対してrequestのpostを渡すことになります。
localhost/admin/account/user/testurl
上記のURLには「http://」または「https://」がありません。
「http://」または「https://」がないと、URLにアクセスする際に「http://」か「https://」どっちにアクセスすれば良いのか分からなくなってしまうのです。
これがエラーが出る原因ですね。
上記のサンプルコードであれば、下記のように直しましょう。
1 2 3 |
response = requests.post( 'http://' + request.get_host() + '/admin/account/user/testurl', {'test': test}) |
これで
http://localhost/admin/account/user/testurl
をrequestsに渡すことになり、エラーが消えるはずです。
終わりに
今回はPythonのrequestsモジュールを使用しているときに「requests.exceptions.InvalidSchema: No connection adapters were found for "」というエラーが起きたときの対処法についてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません