Git Product home page Git Product logo

retrofitclient's Introduction

RetrofitClient

RetrofitClient基于OKHttp和Retrofit封装了基本的GET、POST、PUT、DELET请求和文件上传下载方法,只需三步,快速集成。

1 在app或lib级别的build.gradle文件中添加依赖

compile 'com.jady:retrofitclient:0.2.6'

2 在MainApplication中初始化

HttpManager.init(this, UrlConfig.BASE_URL);
HttpManager.getInstance().setOnGetHeadersListener(new HttpManager.OnGetHeadersListener() {
      @Override
      public Map<String, String> getHeaders() {
          Map<String, String> headers = new HashMap<>();
          headers.put("access_token", "1234");
          return headers;
      }
});

init(Context context, String baseUrl)方法用来传项目的基础url,当然具体的请求也可以动态修改。 另一个是所有请求都需要添加的的请求头,比如accessTokendeviceKey这种。

3 自动义请求回调

参考: 1.ServerCallback 2.CommonCallback

具体封装过程参考我的另一篇文章android使用gson和泛型解析服务器回调的封装

使用

参考: 1.实例中的API类 2.实例中的BaseRequestFragment类

GET请求

API.testGet(new CommonCallback<Feed>() {

     @Override
     public void onSuccess(Feed feed) {
           tvBaseRequestGet.setText(feed.getContent);
     }

     @Override
     public void onFailure(String error_code, String error_message) {

     }
});

不使用baseUrl:

HttpManager.getFullPath(String fullUrl, Map<String, Object> parameters, HttpCallback callback)

POST请求

API.testPost(name, password, new ServerCallback<ServerCallbackModel<String>, String>() {

    @Override
    public void onSuccess(String accessToken) {
        showToast("accessToken:" + accessToken);
    }

    @Override
    public void onFailure(String error_code, String error_message) {
    }

    /**
    * 对单个请求允许Toast显示错误信息
    */
    @Override
    public boolean enableShowToast() {
        return true;
    }
});

不使用baseUrl:

HttpManager.postFullPath(String fullUrl, Map<String, Object> parameters, HttpCallback callback)

post对象,以json传输

HttpManager.postByBody(String url, T body, HttpCallback callback)

PUT请求

API.testPut(putContent, new ServerCallback<ServerCallbackModel<Object>, Object>() {

    @Override
    public void onSuccess(Object o) {
        showToast("更新成功");
    }

    @Override
    public void onFailure(String error_code, String error_message) {
        showToast("更新失败,请检查token");
    }
});

DELETE请求

API.testDelete(1,new ServerCallback<ServerCallbackModel<Object>, Object>() {
    @Override
    public void onSuccess(Object o) {
        showToast("删除成功");
    }

    @Override
    public void onFailure(String error_code, String error_message) {
        showToast("删除失败,请检查token");
    }
});

文件上传 单文件上传:

HttpManager.uploadFile(String url, String filePath, String fileDes, TransformProgressListener iProgress)

多文件上传:

HttpManager.uploadFiles(String url, List<String> filePathList, TransformProgressListener iProgress)

如果需要临时改变baseUrl,只需要在发送请求之前调用

HttpManager.setTmpBaseUrl("http://192.168.0.127:8080/retrofitclientserver/");
HttpManager.get(UrlConfig.USER_INFO, null, callback);

如果需要临时添加请求头,需要在发送请求前调用:

HttpManager.addTmpHeaders(headers);
HttpManager.get(UrlConfig.USER_INFO, null, callback);

具体使用方法可以参考库中的demo。

服务器端代码参考:RetrofitClientServer

retrofitclient's People

Contributors

jadyli avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.