我正在尝试将 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/