• 安卓开发之okHttp请求封装


    1. package util;
    2. import java.util.Map;
    3. import java.util.concurrent.TimeUnit;
    4. import okhttp3.FormBody;
    5. import okhttp3.MediaType;
    6. import okhttp3.OkHttpClient;
    7. import okhttp3.Request;
    8. import okhttp3.RequestBody;
    9. public class NetWork {
    10. private static String userAgent = System.getProperty("http.agent");
    11. //定义请求基础地址
    12. public static final String BASEURL = "你的基础地址";
    13. public static void get(String url, okhttp3.Callback callback) {
    14. OkHttpClient okHttpClient = new OkHttpClient();
    15. Request request = new Request.Builder()
    16. .url(BASEURL+url)
    17. .build();
    18. okHttpClient.newCall(request).enqueue(callback);
    19. }
    20. //这个也是get请求,和上个不同的是.removeHeader("User-Agent").addHeader("User-Agent", userAgent)这里,一般是登录的时候要的
    21. public static void getA(String url, okhttp3.Callback callback) {
    22. OkHttpClient okHttpClient = new OkHttpClient();
    23. okHttpClient.newBuilder() //这里写超时设置
    24. .connectTimeout(10, TimeUnit.MINUTES)
    25. .readTimeout(10, TimeUnit.MINUTES) // 读取超时
    26. .writeTimeout(10, TimeUnit.MINUTES) // 写超时
    27. .build();
    28. Request request = new Request.Builder()
    29. .url(BASEURL+url)
    30. .removeHeader("User-Agent")//移除旧的
    31. .addHeader("User-Agent", userAgent)
    32. .build();
    33. okHttpClient.newCall(request).enqueue(callback);
    34. }
    35. //这个post是传json的
    36. public static void postJ(String url, String json, okhttp3.Callback callback) {
    37. OkHttpClient okHttpClient = new OkHttpClient();
    38. RequestBody requestBody = RequestBody
    39. .create(MediaType.parse("application/json"), json);
    40. Request request = new Request.Builder()
    41. .url(BASEURL+url)
    42. .post(requestBody)
    43. .build();
    44. okHttpClient.newCall(request).enqueue(callback);
    45. }
    46. //这个post是传formDate的
    47. public static void postF(String url, Map map, okhttp3.Callback callback) {
    48. FormBody.Builder builder = new FormBody.Builder();
    49. String userAgent = System.getProperty("http.agent");
    50. for (String key : map.keySet()) {
    51. builder.add(key, map.get(key));
    52. }
    53. OkHttpClient okHttpClient = new OkHttpClient();
    54. Request request = new Request.Builder()
    55. .url(BASEURL+url)
    56. .post(builder.build())
    57. .build();
    58. okHttpClient.newCall(request).enqueue(callback);
    59. }
    60. }

  • 相关阅读:
    Django视图层解析
    NC20242 [SCOI2005]最大子矩阵
    Yolov5 (v6.1)添加注意力机制
    数据可视化工具在成绩分析中的作用与意义
    【Linux操作系统】--多线程(二)--条件变量
    Vue----组件
    【Lua 入门基础篇(一)】基本语法&数据类型
    1、40个linux高效运维命令总结
    mac使用n切换node版本
    【控制台】 \xce\xde\xb7\xa8\xb4\xf2\xbf\xaa
  • 原文地址:https://blog.csdn.net/qq_40596257/article/details/126568893