关于 Android API 调用,我还没有用 json 格式格式化请求吗?(也许是愚蠢的XD



此处为本科生。最近,当我遇到这个问题时,我正在练习开发一些Android应用程序。我需要启动一个API调用,使用如下给定格式:API请求头和主体示例

我选择使用okhttp3进行请求,这是我的代码:

RequestBody formBody = new FormBody.Builder()
.add("reply","""+my_string+""")
.add("type","0")
.build();
Request request = new Request.Builder().url("https://cbs-ext.cn-north-4.myhuaweicloud.com/v1/" + projectid + "/taskbot/voicecall/bots/" + botid + "/sessions/" + sessionid)
.addHeader("X-Auth-Token",Xauth)
.addHeader("Content-Type","application/json")
.post(formBody).build();

好吧,你看,与给定的格式相比,我不认为我的请求格式有任何问题,但是连接总是返回错误代码:

{"error_code":"CBS.6852","error_msg":"unsupported mediaType, content-type must be application/json"}

我已经检查了所有其他行和错误信息,并确认问题是由我的POST请求引起的。

您可以看到API告诉我我的请求不是用json格式化的。所以我想问一下为什么会出现这种错误?我在提出请求时犯了一些错误吗?或者可以说我的请求主体根本不是json格式的?我该如何处理?

我很抱歉地说,我只是在Android开发和API调用的初级水平,所以在你们的XD眼中,这个问题可能太傻了。但我仍然希望看到你的话,我需要一个解决方案,谢谢各位XD。

FormBody意味着应用程序/x-www-form-urlencoded,因此您实际上需要使用RequestBody.create而不是

将OkHttp Post Body作为JSON

相关内容

最新更新