import okhttp3.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
public class OkHttpUtil {
public static void post(String url, RequestBody formBody, Callback callback){
OkHttpClient okHttpClient = new OkHttpClient();
Request.Builder builder = new Request.Builder().url(url).post(formBody);
Request request = builder.build();
okHttpClient.newCall(request).enqueue(callback);
}
public static Response post(String url, RequestBody formBody) throws IOException {
OkHttpClient okHttpClient = new OkHttpClient();
Request.Builder builder = new Request.Builder().url(url).post(formBody);
Request request = builder.build();
Call call = okHttpClient.newCall(request);
return call.execute();
}
public static Response post(String url, Map<String, String> headers, RequestBody formBody) throws IOException {
OkHttpClient okHttpClient = new OkHttpClient();
Request.Builder builder = new Request.Builder().url(url).post(formBody);
for (String name : headers.keySet()) {
builder.addHeader(name, headers.get(name));
}
Request request = builder.build();
Call call = okHttpClient.newCall(request);
return call.execute();
}
public static void get(String url, Callback callback){
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(url).build();
Call call = client.newCall(request);
call.enqueue(callback);
}
public static Response syncGet(String url) throws IOException {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(url).build();
Call call = client.newCall(request);
return call.execute();
}
public static Response syncGet(String url, Map<String ,String> headers) throws IOException {
OkHttpClient client = new OkHttpClient();
Request.Builder builder = new Request.Builder().url(url);
for(String name : headers.keySet()){
builder.addHeader(name, headers.get(name));
}
Call call = client.newCall(builder.build());
return call.execute();
}
public static void download(String url, File target) throws IOException {
Response response = syncGet(url);
ResponseBody body = response.body();
if (body == null) {
return;
}
InputStream inputStream = body.byteStream();
FileOutputStream outputStream = new FileOutputStream(target);
int len;
byte[] bytes = new byte[1024];
while ((len = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, len);
}
inputStream.close();
outputStream.flush();
outputStream.close();
}
public static void download(String url, Map<String, String> headers, File target) throws IOException {
Response response = syncGet(url, headers);
ResponseBody body = response.body();
if (body == null) {
return;
}
InputStream inputStream = body.byteStream();
FileOutputStream outputStream = new FileOutputStream(target);
int len;
byte[] bytes = new byte[1024];
while ((len = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, len);
}
inputStream.close();
outputStream.flush();
outputStream.close();
}
}
接收Get方法
String url = "地址";
Response response = OkHttpUtil.syncGet(url);
String responseBody = response.body().string();
return JSON.parseObject(responseBody, new TypeReference<DsResult<List<String>>>(){}.getType());
接收Get方法+参数+ToKen
String url = "地址" +
"?参数名 = " + 参数;
Map<String, String> map = new HashMap<>();
map.put("token", "token值");
Response response = OkHttpUtil.syncGet(url, map);
String responseBody = response.body().string();
return JSON.parseObject(responseBody, new TypeReference<DsResult<List<String>>>(){}.getType());
接收Post方法
String url = "地址";
RequestBody requestBody = new MyRequestBuilder()
.add("参数名", 参数)
.build();
Response response = OkHttpUtil.syncPost(url, requestBody);
return JSON.parseObject(response .body().string(),new TypeReference<RequestResult<List<String>>>(){}.getType()
接收Post+JSON参数+token
String url = "地址";
Map<String, Object> map1 = new HashMap<>();
map1.put("参数名", 参数);
Map<String, String> map = new HashMap<>();
map.put("token", token值);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JSON.toJSONString(map1));
Response response = OkHttpUtil.post(url, map, requestBody);
String responseBody = response.body().string();
return JSON.parseObject(responseBody,new TypeReference<DsResult<List<SewageLive>>>(){}.getType());
如果接收数据为这种格式
code:
data:{[
]}
message:
success:
可以用这个类作为壳接收
import lombok.Data;
@Data
public class DsResult<T> {
private int code;
private T data;
private String message;
private boolean success;
}
实例
DsResult<List<User>> listDsResult = JSON.parseObject(responseBody,new TypeReference<DsResult<List<User>>>(){}.getType());
List<User> users= listDsResult.getData();