直接贴代码吧
工具类
public class OkHttpClientUtil {
private static OkHttpClientUtil mInstance = new OkHttpClientUtil ();
private OkHttpClientUtil(){}
/**
* 单例模式获取 NetUtils
*
* @return {@link OkHttpClientUtil}
*/
public static OkHttpClientUtil getInstance() {
return mInstance;
}
public String issueFromRequest(String url, FormBody body, Map<String, String> headerMap)
throws IOException {
Builder builder = new Builder().url(url).post(body);
if (headerMap != null && !headerMap.isEmpty()) {
for (String key : headerMap.keySet()) {
builder.addHeader(key, headerMap.get(key));
}
}
Request request = builder.build();
Response response = okHttpClient.newCall(request).execute();
if (response.isSuccessful()) {
return response.body().string();
} else {
throw new IOException("Unexpected code " + response);
}
}
}
如果是发送普通的参数
FormBody.Builder builder = new FormBody.Builder();
String url = "localhost" + ":" + "port";
Map<String, String> map = Maps.newHashMap();
FormBody body = builder.add("paramsA", "aaa")
.add("paramsB", "bbb")
.add("paramsC", "ccc")
.add("paramsD", "ddd")
.build();
// 发送请求
String str = OkHttpClientUtil.getInstance().issueFromRequest(url, body, map);
如果发送的参数中带有集合类型的参数
FormBody.Builder builder = new FormBody.Builder();
String url = "localhost" + ":" + "port";
Map<String, String> map = Maps.newHashMap();
List<Object> paramsList = new ArrayList<>(); // 比如这个集合中就是参数的话
for (int i = 0; i < paramsList .size(); i++) {
builder.add("paramsList [" + i +"].listA","aaa")
.add("paramsList [" + i +"].listB","bbb")
.add("paramsList [" + i +"].listC","ccc");
}
FormBody body = builder.add("paramsA", "aaa")
.add("paramsB", "bbb")
.add("paramsC", "ccc")
.add("paramsD", "ddd")
.build();
// 发送请求
String str = OkHttpClientUtil.getInstance().issueFromRequest(url, body, map);
后台接收的对象
@Data
public class ReceiveObject{
private String paramsA;
private String paramsB;
private String paramsC;
private String paramsD;
private List<ParamDetails> paramsList;
@Data
public static class ParamDetails{
private String listA;
private int listB;
private String listC;
}
}