如何在 Java 中使用 okhttp3 的 PUT 请求?
How to use PUT request with okhttp3 in Java?
我对此很陌生,所以请多关照。我正在尝试向某个端点发出 PUT 请求,我需要在其中发送某个布尔变量是真还是假。我在 Java 11.
中使用 okhttp3
final Request request = new Request.Builder()
.url(someBaseURL + "/" + obj.getKey() + "/path")
.build();
execute(request);
到目前为止,这是我的代码,我需要使用以下 URL:
调用端点
"someBaseURL/obj.key/path?booleanVariable=true"
所以我的问题是如何发出一个 PUT
请求来添加此 booleanVariable
,其值为 true 或 false。我尝试了一种非常愚蠢和简单的方法,只是将 "?booleanVariable=true"
添加到 .url()
,但是那个请求只是一个 GET
,它对我不起作用。
如果您在正文中发送数据,请尝试以下代码:
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n\t\"first_param\":\"xxxxxx\"}");
Request request = new Request.Builder()
.url("http://localhost:8080/api-path?booleanVariable=true")
.put(body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
或者如果您只在参数中发送数据,那么您应该尝试下面的代码
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n\t\n}");
Request request = new Request.Builder()
.url("http://localhost:8080/api-path?booleanVariable=true")
.put(body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
我对此很陌生,所以请多关照。我正在尝试向某个端点发出 PUT 请求,我需要在其中发送某个布尔变量是真还是假。我在 Java 11.
中使用 okhttp3final Request request = new Request.Builder()
.url(someBaseURL + "/" + obj.getKey() + "/path")
.build();
execute(request);
到目前为止,这是我的代码,我需要使用以下 URL:
调用端点"someBaseURL/obj.key/path?booleanVariable=true"
所以我的问题是如何发出一个 PUT
请求来添加此 booleanVariable
,其值为 true 或 false。我尝试了一种非常愚蠢和简单的方法,只是将 "?booleanVariable=true"
添加到 .url()
,但是那个请求只是一个 GET
,它对我不起作用。
如果您在正文中发送数据,请尝试以下代码:
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n\t\"first_param\":\"xxxxxx\"}");
Request request = new Request.Builder()
.url("http://localhost:8080/api-path?booleanVariable=true")
.put(body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
或者如果您只在参数中发送数据,那么您应该尝试下面的代码
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n\t\n}");
Request request = new Request.Builder()
.url("http://localhost:8080/api-path?booleanVariable=true")
.put(body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();