私は Python の初心者で、この小さなスクリプトをコーディングして、ローカル サーバー (localhost) で HTTP GET 要求を送信しました。アクセントなどのラテン文字を送信できることを除けば、うまく機能します。
import http.client
httpMethod = "GET"
url = "localhost"
params = "Hello World"
def httpRequest(httpMethod, url, params):
conn = http.client.HTTPConnection(url)
conn.request(httpMethod, '/?param='+params)
conn.getresponse().read()
conn.close()
return
httpRequest(httpMethod, url, params)
パラメータ「params」にアクセント付きの単語を挿入すると、次のエラー メッセージが表示されます。
UnicodeEncodeError: 'ascii' コーデックは位置 14 の文字 '\xe9' をエンコードできません: 序数が範囲内にありません(128)
http.client ライブラリを使用した解決策があるかどうかはわかりませんが、そうだと思います。ドキュメント http.client を見ると、次のように表示されます。
HTTPConnection.request
文字列は、HTTP のデフォルトの文字セットである ISO-8859-1 としてエンコードされます。