gpt4 book ai didi

java - 在 OkHttp 中使用请求正文获取请求

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:24:12 26 4
gpt4 key购买 nike

我正在尝试将 OkHttp 3.6.0 与 Elasticsearch 一起使用,但我无法将请求发送到 Elasticsearch Multi GET API .

它需要发送带有请求正文的 HTTP GET 请求。不幸的是,OkHttp 不支持开箱即用,如果我尝试自己构建请求,则会抛出异常。

RequestBody body = RequestBody.create("text/plain", "test");

// No RequestBody supported
Request request = new Request.Builder()
.url("http://example.com")
.get()
.build();

// Throws: java.lang.IllegalArgumentException: method GET must not have a request body.
Request request = new Request.Builder()
.url("http://example.com")
.method("GET", requestBody)
.build();

有没有机会在 OkHttp 中构建带有请求主体的 GET 请求?

相关问题:

最佳答案

经过几次尝试,我找到了解决这个问题的方法。也许有人觉得它有用。

我使用了“Httpurl.Builder”。

HttpUrl mySearchUrl = new HttpUrl.Builder()
.scheme("https")
.host("www.google.com")
.addPathSegment("search")
.addQueryParameter("q", "polar bears")
.build();

您的获取请求 url 将以这种方式发生:

https://www.google.com/search?q=polar%20bears

在构建你的 url 之后,你必须像这样构建你的请求:

Request request = new Request.Builder()
.url(mySearchUrl)
.addHeader("Accept", "application/json")
.method("GET", null)
.build();

这是来源:https://square.github.io/okhttp/3.x/okhttp/okhttp3/HttpUrl.html

关于java - 在 OkHttp 中使用请求正文获取请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43288236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com