[英]How to get a HTTP POST request body as a Java String at the server side?
[英]How to access request body model fields on DRF server side?
在android客戶端,我向帶有ContactRequest
主體的服務器端點發出請求:
public class ContactRequest {
@SerializedName("senderId")
@Expose
private int senderId;
@SerializedName("receiverId")
@Expose
private int receiverId;
public ContactRequest(int senderId, int receiverId) {
this.senderId = senderId;
this.receiverId = receiverId;
}
}
使用改造,我將此對象作為請求主體傳遞:
@POST("friendship/create-friend-request/")
Call<Void> sendRequest(@Body ContactRequest contactRequest);
在服務器端,然后將此端點映射到CreateFriendRequestView
:
class CreateFriendRequestView(views.APIView):
def post(self, request, *args, **kwargs):
sender = User.objects.get(pk=request.senderId)
receiver = User.objects.get(pk=request.receiverId)
Friend.objects.add_friend(sender, receiver)
return Response({'status': 'Request sent'}, status=201)
但是,當對此端點發出請求並調用該視圖時,發生內部服務器錯誤,狀態碼為500。
AttributeError:“請求”對象沒有屬性“ senderId”
如何在Django senderId
Framework客戶端上引用字段senderId
和receiverId
?
請求數據在請求對象的data
字段中。
結帳http://www.django-rest-framework.org/api-guide/requests/#data
您必須使用:
sender = User.objects.get(pk=request.data.get('senderId'))
request.data是一個python字典。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.