从VBA到烧瓶的HTTP请求编码问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从VBA到烧瓶的HTTP请求编码问题相关的知识,希望对你有一定的参考价值。
我正在从VBA发出POST请求,其中包含一些来自Cell(1,1)的西里尔字符到我的烧瓶应用程序,如下所示:
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://127.0.0.1:5000/lineList?line=" & Cells(1, 1).Value
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHTTP.send ("")
在烧瓶中我尝试输出以下参数:
def post(self):
args = parser.parse_args()
print(args)
return "ok",200
但后来我得到了类似的东西
{'line': 'Ðx90Ñx80гÑx83менÑx82'}
并在python控制台中
127.0.0.1 - - [14/Apr/2019 17:10:31] "POST /lineList?line=ÐÑгÑÐ¼ÐµÐ½Ñ HTTP/1.1" 200 -
看起来像一些编码问题,但我无法弄清楚。任何帮助表示赞赏。
答案
尝试为西里尔语定义字符集,尝试其中一些:
charset=iso-8859-5
charset=koi8-r
charset=windows-1251
e.g:
objHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencoded", "charset=ISO-8859-1"
以上是关于从VBA到烧瓶的HTTP请求编码问题的主要内容,如果未能解决你的问题,请参考以下文章