困惑许久疑问,请帮忙分析下呢,是否方向错了

2020-08-02 21:51:02 +08:00
 ropon

#通过以下代码已解决中文乱码
api.representations = {'application/json;charset=utf-8': output_json}

新问题

#python 、rust 等测试正常
import requests
res = requests.get(url="http://127.0.0.1:5000/api/v1/login")
print(res.text)
#go 测试异常
resp,_ := http.Get("http://127.0.0.1:5000/api/v1/login")
body,_ :=ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
#错误详情
File "site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "site-packages\flask_restful\__init__.py", line 472, in wrapper
    return self.make_response(data, code, headers=headers)
  File "site-packages\flask_restful\__init__.py", line 509, in make_response
    raise InternalServerError()
#注释之前添加代码,go 测试正常
#api.representations = {'application/json;charset=utf-8': output_json}
#请问问题出在哪儿呢?
1849 次点击
所在节点    Python
5 条回复
ropon
2020-08-02 21:55:06 +08:00
hareandlion
2020-08-02 22:09:31 +08:00
demo 项目里 requirements.txt 加一下?防止是库版本的问题
ropon
2020-08-02 22:27:00 +08:00
@hareandlion 好了,麻烦帮忙看下
hareandlion
2020-08-02 23:17:27 +08:00
Golang 的 http 包发请求时默认不带 header,没有 header 时 flask 默认的 mediatype 是“application/json”, api.representations 里定义的 key 是'application/json;charset=utf-8',再加一个 key 或者把原来的 key 改成"application/json"就好了

```
api.representations = {'application/json;charset=utf-8': output_json, "application/json": output_json}
```
ropon
2020-08-03 11:57:58 +08:00
@hareandlion 感谢大佬,我试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/695091

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX