# HttpDownRetorfit **Repository Path**: shotter_admin/http-down-retorfit ## Basic Information - **Project Name**: HttpDownRetorfit - **Description**: 使用retorfit封装得网络请求,下载库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-07-05 - **Last Updated**: 2025-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HttpDownRetorfit #### 介绍 使用 retorfit 封装得网络请求,下载库 #### 软件架构 软件使用 retorfit 结构设计得网络请求框架 #### 日志输出 日志默认为关闭状态 HttpHelper.setHttpLogDebug(Boolean); true为打开日志输出,false为关闭日志,在正式环境下请注意关闭日志输出,否则影响性能 ### 可使用 HttpUtils 的静态方法 #### 使用说明 ##### get 请求 参数说明: url 请求的url params 请求参数,也可以在url后面拼接参数 headers 请求头参数 Observer< T> resp 请求结果回调(主线程), T可以是String 或者其他javaBean params参数可以使用 Params 例子: Params params = Params.newBuilder() .add("key", "value") .add("key2", "value2") .build(); headers参数可以使用 Header 例子: Header headers = Header.newBuilder() .add("key", "value") .add("key2", "value2") .build(); resp 可以使用自带的 new Callback(){} 或者 new RespCallback<>(){} 或者其他的Observer HttpUtils.get(String url, Observer< T> resp) HttpUtils.get(String url, Params params, Observer< T> resp) HttpUtils.get(String url, Header headers, Observer< T> resp) HttpUtils.get(String url, Params params, Header headers, Observer< T> resp) 简单调用例子 HttpUtils.get("url", new Callback() { @Override public void onSuccess(String s) { } @Override public void onError(@NonNull Throwable e) { } }); /*** * 这里处理过code msg */ HttpUtils.get("url", new RespCallback() { @Override public void onSuccess(String s) { } @Override public void onError(@NonNull Throwable e) { } }); ##### post请求 参数说明: url 请求的url body 请求参数,也可以在url后面拼接参数 headers 请求头参数 bean javaBean对象 Observer< T> resp 请求结果回调(主线程), T可以是String 或者其他javaBean body 请求参数可使用Body.newFormBody() 或者 Body.newMultiBody() 或者 Body.jsonBody()来构建 例如 Body body = Body.newFormBody() .add(key, value) .add(key2, value2) .build(); bean 参数对象可以使用 Body.jsonBody()来构建 或者 JsonBuilder.newBuilder()来构建 或者 自己自行构建 例如 Object obj = JsonBuilder.newBuilder() .add(key, value) .add(key2, value2) .build() 或者 Person person = new Person(); person.age = 11 person.name = "张三" headers参数可以使用 Header 来构建 例子:Header headers = Header.newBuilder() .add("key", "value") .add("key2", "value2") .build(); resp 可以使用自带的 new Callback(){} 或者 new RespCallback<>(){} 或者其他的Observer ###### 表单形式提交 HttpUtils.post(String url, Observer resp) HttpUtils.post(String url, Body body, Observer resp) HttpUtils.post(String url, Header headers, Observer resp) post(String url, Body body, Header headers, Observer resp) ###### json形式提交 HttpUtils.postjson(String url, Observer resp) HttpUtils.postJson(String url, Object bean, Observer resp) HttpUtils.postjson(String url, Header headers, Observer resp) HttpUtils.postJson(String url, Object bean, Header header, Observer resp) 简单的调用例子 Header headers = Header.newBuilder() .add(key, value) .add(key, value) .get(); Body body = Body.newFormBody() .addParam(key, value) .addParam(key, value) .build(); HttpUtils.post("url", body, new Callback() { @Override public void onSuccess(String s) { } @Override public void onError(@NonNull Throwable e) { } }); HttpUtils.post("url", body, headers, new Callback() { @Override public void onSuccess(String s) { } @Override public void onError(@NonNull Throwable e) { } }); Object obj = JsonBuilder.newBuilder() .add(key, value) .add(key, value) .build(); HttpUtils.postJson("url", obj, new Callback() { @Override public void onError(@NonNull Throwable e) { } @Override public void onSuccess(String s) { } }); Person person = new Person(); person.age = 11; person.name = "张三"; HttpUtils.postJson("url", person, new Callback() { @Override public void onError(@NonNull Throwable e) { } @Override public void onSuccess(String s) { } }); HttpUtils.postJson("url", person, new RespCallback() { @Override public void onError(@NonNull Throwable e) { } @Override public void onSuccess(String s) { } }); #### 下载文件 ##### 两种方式 ##### 第一种 DownloadTask task = HttpUtils.downloadFile("savePath", "url", new OnDownloadListener() { @Override public void onProgress(int progress, long speed) { System.out.println(progress + "/" + "---> " + ByteUtils.getFormatByte(speed) + "/s"); } @Override public void onSuccess(String filePath) { } @Override public void onFailure(Throwable e) { } }); //停止下载 task.stop(); 第二种方式 DownloadTask task = new DownloadTask.Builder() .setDownloadUrl("url") .setSavePath("savePath") .setOnDownloadListener(new OnDownloadListener() { @Override public void onProgress(int progress, long speed) { System.out.println(progress + "/" + "---> " + ByteUtils.getFormatByte(speed) + "/s"); } @Override public void onSuccess(String filePath) { } @Override public void onFailure(Throwable e) { } }) .build(); //开始下载 task.start(); //停止下载 task.stop(); #### 文件上传 参数说明 url 要上传到的服务器url file 文件 name 服务端定义的name, 默认取file.getName()的值 params 上传时附带的参数 headers 请求头 uploadFile(String url, File file, OnUploadListener listener) uploadFile(String url, Header headers, File file, OnUploadListener listener) uploadFile(String url, String name, File file, OnUploadListener listener) uploadFile(String url, Header headers, String name, File file, OnUploadListener listener) uploadFile(String url, File file, Params params, OnUploadListener listener) uploadFile(String url, File file, Params params, Header headers, OnUploadListener listener) uploadFile(String url, String name, File file, Params params, OnUploadListener listener) uploadFile(String url, String name, File file, Params params, Header headers, OnUploadListener listener) ##### 使用例子 UploadTask task = HttpUtils.uploadFile(); 或者 UploadTask task = new UploadTask.Builder() .setUploadUrl(url) .addParams(file) .addParams(key, file) .addParams(key, value) .addParams(params) .addHeader(headers) .addHeader(key, value) .setOnUploadListener(new OnUploadListener() { @Override public void onProgress(int progress, long speed) { } @Override public void onResp(Resp resp) { } @Override public void onFailure(Throwable e) { } }) .build(); //开始 task.start(); //停止 task.start();