dianxin-guizhou-forward
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

110 lines
3.9KB

  1. package com.ssjl.zhaobiao.guizhou.utils;
  2. import okhttp3.*;
  3. import org.springframework.stereotype.Component;
  4. import java.io.IOException;
  5. import java.util.Map;
  6. @Component
  7. public class OkHttpUtil {
  8. private OkHttpClient client;
  9. private static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
  10. private static final MediaType WWWFORM = MediaType.get("application/x-www-form-urlencoded");
  11. public OkHttpUtil() {
  12. client = new OkHttpClient();
  13. }
  14. public String get(String url) throws IOException {
  15. Request request = new Request.Builder()
  16. .url(url)
  17. .build();
  18. try (Response response = client.newCall(request).execute()) {
  19. return response.body().string();
  20. }
  21. }
  22. public String get(String url, Headers headers) throws IOException {
  23. Request request = new Request.Builder()
  24. .url(url)
  25. .headers(headers)
  26. .build();
  27. try (Response response = client.newCall(request).execute()) {
  28. return response.body().string();
  29. }
  30. }
  31. public String postJson(String url, String json) throws IOException {
  32. RequestBody requestBody = RequestBody.create(json, JSON);
  33. Request request = new Request.Builder()
  34. .url(url)
  35. .post(requestBody)
  36. .build();
  37. try (Response response = client.newCall(request).execute()) {
  38. return response.body().string();
  39. }
  40. }
  41. public String postJson(String url, String json, Headers headers) throws IOException {
  42. RequestBody requestBody = RequestBody.create(json, JSON);
  43. Request request = new Request.Builder()
  44. .url(url)
  45. .post(requestBody)
  46. .headers(headers)
  47. .build();
  48. try (Response response = client.newCall(request).execute()) {
  49. return response.body().string();
  50. }
  51. }
  52. public String postWwwForm(String url, Map<String, String> formMap) throws IOException {
  53. FormBody.Builder formBuilder = new FormBody.Builder();
  54. for(Map.Entry<String, String> item : formMap.entrySet()){
  55. formBuilder.add(item.getKey(), item.getValue());
  56. }
  57. RequestBody requestBody = formBuilder.build();
  58. Headers headers = new Headers.Builder().add("Content-Type", "application/x-www-form-urlencoded").build();
  59. Request request = new Request.Builder()
  60. .url(url)
  61. .post(requestBody)
  62. .headers(headers)
  63. .build();
  64. try (Response response = client.newCall(request).execute()) {
  65. return response.body().string();
  66. }
  67. }
  68. public String postFormdata(String url, Map<String, String> formMap) throws IOException {
  69. FormBody.Builder formBuilder = new FormBody.Builder();
  70. for(Map.Entry<String, String> item : formMap.entrySet()){
  71. formBuilder.add(item.getKey(), item.getValue());
  72. }
  73. Headers headers = new Headers.Builder().add("Content-Type", "multipart/form-data").build();
  74. RequestBody requestBody = formBuilder.build();
  75. Request request=new Request.Builder()
  76. .url(url)
  77. .post(requestBody)
  78. .headers(headers)
  79. .build();
  80. try (Response response = client.newCall(request).execute()) {
  81. return response.body().string();
  82. }
  83. }
  84. public byte[] postBytes(String url, byte[] bytes, Headers headers) throws IOException {
  85. MediaType mediaType = MediaType.parse("application/octet-stream;charset=UTF-8");
  86. RequestBody requestBody = RequestBody.create(bytes, mediaType);
  87. Request request = new Request.Builder()
  88. .url(url)
  89. .post(requestBody)
  90. .headers(headers)
  91. .build();
  92. try (Response response = client.newCall(request).execute()) {
  93. return response.body().bytes();
  94. }
  95. }
  96. }