【发布时间】:2022-01-22 03:32:16
【问题描述】:
我正在尝试向特定 URL 发送 POST 请求,下面是我的 Java 代码来执行此操作...
OkHttpClient httpClient = new OkHttpClient().newBuilder().build();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create("<JSON_AS_STRING>", JSON);
Request request = new Request.Builder()
.url(url)
.method("POST", body)
.addHeader("Authorization", getToken())
.addHeader("Content-Type", "application/json; charset=utf-8")
.build();
Response response = httpClient.newCall(request).execute()
当请求被执行时,我在错误代码 100 下得到“无效的内容类型”。我将 JSON 正文存储在一个字符串中并使用它并定义媒体类型来创建正文。
但是当我从 Postman 发送相同的请求时,我得到了成功代码 204。
在 Postman 中,我选择了正文作为 JSON,并在正文中传递 JSON,并设置 URL 和其他标头(如授权),当我发送请求时,我收到 204。
但是当我将其更改为文本时,我会收到与我的 Java 代码相同的错误“内容类型无效”。我正在为客户端、请求和响应使用 OkHttp3 库。我的 java 代码如何不将媒体类型作为应用程序/json。我什至尝试在带有 application/json 的标头中传递“charset=utf-8”,但仍然无法正常工作。
任何可能出错的建议,这不是我第一次创建 okhttp3 请求,而是第一次看到这样的事情......
我什至尝试复制您可以使用邮递员创建的 Java 代码...仍然无法正常工作。
【问题讨论】: