OkHttpUtils公共类
个人使用记录一下。
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.11.0</version>
</dependency>
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.TimeUnit;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class OkHttpUtils {
private static OkHttpClient client = new OkHttpClient().newBuilder().connectTimeout(60000, TimeUnit.MILLISECONDS)
.readTimeout(60000, TimeUnit.MILLISECONDS)
.build();
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
public static String runGet(String url) throws IOException {
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
return response.body().string();
}
public static String runPostForString(String url, String json) throws IOException {
RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder().url(url).post(body).build();
Response response = client.newCall(request).execute();
if(!response.isSuccessful()) {
return null;
}else {
return response.body().string();
}
}
//上传文件
//byte[] file:MultipartFile.getBytes()
public static String runPostForStringFile(String url,String fileName,byte[] file) throws IOException {
//RequestBody requestBody = RequestBody.create( MediaType.parse("image/*"),New File("图片路径"));
RequestBody requestBody = RequestBody.create( MediaType.parse("image/*"),file); //所有图片类型
MultipartBody multipartBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file",fileName,requestBody).build();
Request request = new Request.Builder()
.url(url)
.post(multipartBody)
.build();
Response response = client.newCall(request).execute();
if(!response.isSuccessful()) {
return null;
}else {
return response.body().string();
}
}
public static InputStream runPostForInputStream(String url, String json) throws IOException {
RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder().url(url).post(body).build();
Response response = client.newCall(request).execute();
return response.body().byteStream();
}
}