无法从Android放入DJANGO REST

问题描述 投票:1回答:1

我在个人网络上有一个DJANGO REST服务器,该服务器设置为获取和接收JSON字符串以更新我正在处理的项目的“状态”。我可以很好地将信息下载到我的Android应用程序中,但是当我尝试将信息放入服务器时,出现错误:

错误的请求:/ api / users / 1 /[28 / Oct / 2019 21:23:23]“ PUT / api / users / 1 / HTTP / 1.1” 400107

我认为它是该应用程序,因为我可以通过Windows Powershell成功执行PUT请求,但在Android应用程序上不起作用。这是使用OKHTTP类的代码:

MediaType JSON = MediaType.parse("application/json; charset=utf-8");
String content = String.format("{'status':%s}", selectedStatus);
RequestBody body = RequestBody.create(JSON, content);

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
        .url(IPAddress + "api/users/" + currentUserID + "/")
        .addHeader("Content-Type", "application/json")
        .put(body) //PUT
        .build();

client.newCall(request).execute();

我已经尝试使用标准的HttpURLConnection类,这是我对GET方法所做的,但是当我这样做时,我什至没有得到服务器的响应。我已经尝试了十几种方法来将某些内容放入服务器,但是没有任何效果。任何帮助实现这一目标的帮助将不胜感激。谢谢。

android django django-rest-framework httpurlconnection okhttp
1个回答
0
投票

对于以后再看的人,我发现了问题。事实证明,在Windows Powershell中,可以在JSON字符串中使用单引号,但需要在OKHTTP方法中使用双引号。因此,我改变了:

String content = String.format("{'status':%s}", selectedStatus);

至:

String content = String.format("{\"status\":%s}", selectedStatus);

一切顺利进行。希望这对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.