在OkHttp中使用请求正文获取请求
我正在尝试将OkHttp 3.6.0与Elasticsearch一起使用,并且我坚持向Elasticsearch Multi GET API发送请求。
它需要向请求主体发送HTTP GET请求。 不幸的是,如果我自己尝试构建请求,OkHttp不支持开箱即用并抛出exception。
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请求?
相关问题:
- 带请求正文的HTTP GET
- 如何在没有请求主体的情况下发出OKHTTP发布请求?
- 带有请求正文的Elasticsearch 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
- 如何防止gson将整数转换为双精度数
- java.lang.ClassCastException:[B不能强制转换为java.lang.String
- Hibernate TypeResolver
- java – 如何检查我的对象是否属于给定类的类型?
- 使用JAVA使用AES加密大文件
- 为什么RestTemplate GET响应是在JSON中应该是XML?
- 如何用spring mvc 3.0注册处理程序拦截器?
- javax.ws.rs.NotFoundException:使用RESTEasy和Wildfly 8.1.0.Final找不到完整路径的资源
- java.security.InvalidAlgorithmParameterException:使用cas 时,trustAnchors参数必须为非空