与Android网络请求相爱相杀

2018-05-06  本文已影响0人  葭葭葭葭葭

网络请求

补充:

image

以写一个“登录”为例

https://github.com/maoqiu123/saiyou

image

前提小概念

JSON--数据传输格式

image

Postman的一把爽体验(一不小心把后端搞崩了.....羞涩)

image image
image image

APIService.java

image
public interface APIService {

    /**
     * 登录
     */
    @POST("saiyou/public/index.php/login")
    Call<APIResponse> login(@Body LoginRequest loginRequest);


}

LoginRequest.java

image
public class LoginRequest extends BaseModel {
    
    private String phone;
    private String password;

    public LoginRequest() {

    }

    public String getIdenttifier(){
        return phone;
    }

    public void serIdentifier(String phone){
        this.phone=phone;
    }

    public String getPassword(){
        return password;
    }
    
    public void setPassword(String password){
        this.password=password;
    }
    
}

APIResponse.java


public class APIResponse<T> extends BaseModel {
    
    private int code = -2;
    private T data;
    private String msg="";

    public String getMsg(){
        return msg;
    }

    public void setMsg(String msg){
        this.msg=msg;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}

【注意:】由于date 的内容很多很杂,所以我们传进去的是一个范形T

image

有 { } 的类型--不需要带 ? 和 {...}

image image image

Query获取信息的方法和途径

image

T范式和 多形式响应获取其一Token的方法

1.我们需要缓存的仅仅是响应中的一部分的话,那就需要专门写一个类似model的Java文件,然后从里面获得所需要的token

image image image

T范式在Retrofitservice.java中写,然后在P层中的retrofit框架中的BaseObserver中会自动跳出

image

model里面的全部内容只能放后端需要的东西,多少一个都不行,有其他多余的东西,跟在model的参数后面就行

image image

开发中遇到的坑👇

1.【ERROR】: on a null object reference

image
java.lang.NullPointerException:
 Attempt to invoke interface method 'void com.hrsoft.taskgo.mvp.presenter.account.contract.ForgetPasswordContract$Presenter.sendRequestNewInformation(com.hrsoft.taskgo.mvp.model.account.request.ForgetPasswordModel, java.lang.String)'
  on a null object reference

原来

image

后来

image

然而还真是。。。。

2.【ERROR】: on a null object reference

知识须知-网络请求对应的

image

好的👌,继续问题👇

image image image

注意注意!

    /**
     * APP Server 网络请求BaseUrl
     */
    public static final String APP_SERVER_BASE_URL = "http://www.thmaoqiu.cn/";

上一篇 下一篇

猜你喜欢

热点阅读