使用场景说明
- 用于spring请求测试
- 用于es/ceph与服务端端的交互,或者其他http数据的交互
代码
import okhttp3.*;
import java.io.IOException;
import java.util.Map;
/**
* 用于http请求的工具类
* 使用okhttp3
*/
public class OkHttpUtil {
/**
* 给定特定的url,参数封装成一个map,get请求
*
* @param ES_URL
* @param params
* @return 响应字符串
*/
private static OkHttpClient client = new OkHttpClient();
public static final MediaType MEDIA_TYPE_JSON = MediaType.parse("application/json; charset=utf-8");
public static String getResponseWithParams(String url, Map<String, String> params) {
HttpUrl httpUrl = HttpUrl.parse(url);
HttpUrl.Builder builder = httpUrl.newBuilder();
if (params != null) {
for (String key : params.keySet()) {
builder.addQueryParameter(key, params.get(key));
}
}
Request request = new Request.Builder().url(builder.build()).build();
try {
String res = client.newCall(request).execute().body().string();
return res;
} catch (IOException e) {
e.printStackTrace();
}
return null;
/* 异步处理 */
// client.newCall(request).enqueue(new Callback() {
// @Override
// public void onFailure(Call call, IOException e) {
// }
//
// @Override
// public void onResponse(Call call, Response response) throws IOException {
//
// }
// });
}
/**
* 向url发送get请求
*
* @param url
* @return 返回的字符串
*/
public static String getResponse(String url) {
Request request = new Request.Builder().url(url).build();
try {
String res = client.newCall(request).execute().body().string();
return res;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* post请求 参数是map格式
*
* @param url
* @param params
* @return
*/
public static String postResponseWithParamsInMap(String url, Map<String, String> params) {
FormBody.Builder builder = new FormBody.Builder();
if (params != null) {
for (String key : params.keySet()) {
builder.add(key, params.get(key));
}
}
RequestBody body = builder.build();
Request request = new Request.Builder().url(url).post(body).build();
try {
String res = client.newCall(request).execute().body().string();
return res;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 参数是json 格式
*
* @param url
* @param json
* @return
*/
public static String postResponseWithParamsInJson(String url, String json) {
RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json);
Request request = new Request.Builder().url(url).post(body).build();
try {
String res = client.newCall(request).execute().body().string();
return res;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* put请求 主要用于新建索引
*
* @param url
* @param json
* @return
*/
public static String putResponseWithParamsInJson(String url, String json) {
RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json);
Request request = new Request.Builder().url(url).put(body).build();
try {
String res = client.newCall(request).execute().body().string();
return res;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
pom文件
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.8.1</version>
</dependency>