我是 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
字符串编码为 ISO-8859-1,HTTP 的默认字符集