android - 使用 Volley 将 json 作为字符串发布到服务器

标签 android json android-volley

我正在尝试将 JSON 作为字符串(而不是对象)发送到服务器(在本例中是 WebAPI)。我总是收到错误代码 500。

当请求为 GET 并且没有向服务器发送数据时,我成功地从服务器获得了响应。这是通过 JsonObjectRequest 实现的。

现在,我尝试发送一个带有 JSON 作为字符串的 POST 请求。为此,我尝试

  • Json对象请求
  • 字符串请求
  • Gson请求
  • JsonRequest - 这里我在 requestBody 中提供了我的 json

在使用 volley 之前,我使用其他方法向服务器发送请求,这需要简单地构建一个对象,序列化为 json(字符串)并通过 StringEntity 传递。

我不明白我应该将请求中的 json 传递到哪里。或者我做错了什么。

最佳答案

我不太明白为什么要将 JSON 作为字符串而不是作为对象发送。尽管如此,在您的 WebAPI 端点中,您应该在 ApiController 的 Post 方法中放置一个断点,并查看请求是否到达那里。

您可能混合了请求的内容类型。如果你想从 Volley 发送一个简单的字符串请求,你应该只使用 StringRequest 并向那里发送 JSON 文本。因此,在 WebAPI POST 方法中,您必须在不反序列化为 JSON 的情况下获取字符串。我曾回答过一个类似的问题,即应该如何发出此字符串请求 here .

但是,正如我之前所说,我建议始终使用包含 contentType:"application/json" header 的 JSON 请求,并在反序列化的 WebAPI 中接收请求。

关于android - 使用 Volley 将 json 作为字符串发布到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27998909/

相关文章:

java - jsonchema2pojo : How the minLength, maxLength 边界应用于生成的 Java Pojo 类?

Android Volley ImageLoader - BitmapLruCache 参数?

android - 未设置应用程序安装程序 ID

android - 对 SEND 操作 Intent 的权限拒绝

javascript - 如何使用 jquery ajax 解析二级 JSON 数组

json - 使用 VBA 将 Json 解析为 Excel 的最快方法

java - 安卓工作室 : 2 different activities in 1 button

android - Volley+ OkHttpClient 为什么要同时使用?

android - 获取SD卡上应用程序的图标

android - 如何在flutter中使用table_calendar获取一个月内的所有事件?