python - 为什么 request.body 在使用美味派的调用自定义 API 时为空?
问题描述
POST API 调用面临问题。我正在使用tastepieprepend_urls
wrap_view
登录自定义api。
我正在使用以下版本:
Tastypie 0.14.3
Tastypie_swagger 0.1.4
Django 2.2.12
Python 3.5.2
我正在使用下面的反序列化方法从有效负载中抽象数据。我不知道为什么我的 request.body 是空的。
data = self.deserialize(
request, request.body,
format=request.META.get('CONTENT_TYPE', 'application/json')
)
如果我试图将请求数据转换为 json,那么它会引发 Request is not valid JSON。根据我的调试,它正在使用名为 deserialize 的包方法并 into serialize.py
of sweetpie。它使用 from_json 方法。request.body 也返回空白查询字典。我正在接收使用 request.GET 传递给 POST 调用的数据。是因为升级版的python和tasticpie造成的吗?我做错了什么吗?
这是我的请求的一些输出。了解场景会很有帮助。
我将此参数放入 GET 而不是 request.body。
request.GET
<QueryDict: {'username': ['abc@gmail.com'], 'password': ['123456']}>
空 POST QueryDict
request.POST
<QueryDict: {}>
请求电话:
request
<WSGIRequest: POST '/api/v1/user/login/?username=abc%40gmail.com&password=123456'>
self.method_check(request, allowed=['post'])
'post'
request.body
b''
它应该具有 JSON 有效负载,例如{"username":"password"}
. 请建议我该怎么做才能解决以下错误。
{
"status": "0",
"message": "Request is not valid JSON."
}
提前致谢!!
解决方案
推荐阅读
- c# - uwp ListView 没有 SelectionChanging 事件
- angular - ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked - How to update template after Observable Value change
- asp.net-mvc - Angular 和 .net mvc 中的路由
- objective-c - NSUrlSession 代理请求失败,错误代码为 310 (kCFErrorHTTPSProxyConnectionFailure)
- firebase - 运行 Gradle 时出错 - gradlew.bat 异常退出(添加 firebase 后出错)
- javascript - 如何在赛普拉斯自动化工具中处理定位器的动态 ID
- php - 找不到 url 在 url 上发送编码参数
- javascript - 有人可以向我解释一下这个功能的作用是什么
- java - Java Inheritance - Fly(程序)运行时打印什么?
- jquery - wordpress 中的 jQuery onscroll 无法正常工作