英文:
How to use PUT request with okhttp3 in Java?
问题
I'm very new to this so please be nice. 我对此非常陌生,所以请友善一点。
I am trying to make a PUT request to some endpoint in which I need to send that some boolean variable is true or false. 我试图发出一个PUT请求到某个终端,其中我需要发送一个布尔变量,其值为true或false。
I am using okhttp3 with Java 11. 我正在使用Java 11和okhttp3。
final Request request = new Request.Builder()
.url(someBaseURL + "/" + obj.getKey() + "/path")
.build();
execute(request);
This is my code so far and I need to call the endpoint with the following URL: 这是我的代码,我需要调用以下URL的终端:
"someBaseURL/obj.key/path?booleanVariable=true"
So my question is how do I make a PUT
request that adds this booleanVariable
with its value being true or false. 所以我的问题是,我如何发出一个PUT
请求,将这个booleanVariable
添加到其中,其值为true或false。
I tried a very stupid and simple way just adding the "?booleanVariable=true" to the .url() but then that request is just a GET and it doesn't work for me. 我尝试了一个非常愚蠢和简单的方法,只是将"?booleanVariable=true"添加到.url()中,但那个请求实际上只是一个GET请求,对我来说不起作用。
英文:
I'm very new to this so please be nice. I am trying to make a PUT request to some endpoint in which I need to send that some boolean variable is true or false. I am using okhttp3 with Java 11.
final Request request = new Request.Builder()
.url(someBaseURL + "/" + obj.getKey() + "/path")
.build();
execute(request);
This is my code so far and I need to call the endpoint with the following URL:
> "someBaseURL/obj.key/path?booleanVariable=true"
So my question is how do I make a PUT
request that adds this booleanVariable
with its value being true or false. I tried a very stupid and simple way just adding the "?booleanVariable=true"
to the .url()
but then that request is just a GET
and it doesn't work for me.
答案1
得分: 1
如果您要在请求体中发送数据,请尝试以下代码:
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"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\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();
英文:
If you are sending data in body then you try this code:
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();
or if you only sending data in params then you should try below code
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();
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论