java - 如何在 Java 中使用带有 okhttp3 的 PUT 请求?
问题描述
我对此很陌生,所以请善待。我正在尝试向某个端点发出 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
它的值为真或假。我尝试了一种非常愚蠢和简单的方法,只是将它添加"?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();
推荐阅读
- asp.net-core - Microsoft.Extensions.DependencyInjection 中的属性注入
- java - 有没有更短的方法来替换字符串中的一些字符而不是连续调用 String.replace ?
- python - 需要按 x 轴日期“期间”排序
- c# - 在 Revit 中关闭窗口 wpf
- java - 如何使用不支持 JOIN 关键字的 Oracle 8i 数据库在 JPA 中管理外键
- jquery - 如何在没有 flexbox 的 CSS 中构建锦标赛支架?
- python - 在 Seaborn 中,特定颜色可以覆盖已经基于另一列的色调吗?
- python - __init__() 缺少 1 个必需的位置参数:“保存”
- postgresql - Postgres 计算数组 jsonb 字段中的项目数
- python-3.x - 错误:索引包含重复条目,无法在 pandas 中重塑