OkHttpUtils.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package http;
  2. import java.io.IOException;
  3. import okhttp3.Call;
  4. import okhttp3.MediaType;
  5. import okhttp3.OkHttpClient;
  6. import okhttp3.Request;
  7. import okhttp3.RequestBody;
  8. import okhttp3.Response;
  9. public class OkHttpUtils {
  10. public static final OkHttpClient client = HttpClient.buildHttpClient();
  11. public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
  12. private OkHttpUtils() {
  13. }
  14. // 同步 GET 请求
  15. public static Response getSync(String url) throws IOException {
  16. Request request = new Request.Builder()
  17. .url(url)
  18. .build();
  19. Call call = client.newCall(request);
  20. return call.execute();
  21. }
  22. // 同步 POST 请求
  23. public static Response postSync(String url, String json) throws IOException {
  24. RequestBody body = RequestBody.create(JSON, json);
  25. Request request = new Request.Builder()
  26. .url(url)
  27. .post(body)
  28. .build();
  29. Call call = client.newCall(request);
  30. return call.execute();
  31. }
  32. //可以设置超时时间 timeoutMillis 毫秒
  33. public static Response postSync(String url, String json, long timeoutMillis) throws IOException {
  34. // 用新 client 覆盖超时设置
  35. OkHttpClient timeoutClient = client.newBuilder()
  36. .connectTimeout(timeoutMillis, java.util.concurrent.TimeUnit.MILLISECONDS)
  37. .readTimeout(timeoutMillis, java.util.concurrent.TimeUnit.MILLISECONDS)
  38. .writeTimeout(timeoutMillis, java.util.concurrent.TimeUnit.MILLISECONDS)
  39. .build();
  40. RequestBody body = RequestBody.create(JSON, json);
  41. Request request = new Request.Builder()
  42. .url(url)
  43. .post(body)
  44. .build();
  45. return timeoutClient.newCall(request).execute();
  46. }
  47. }