美文网首页Android开发Android开发经验谈Android开发
极简HTTP请求,基于OkHttp(简单版)

极简HTTP请求,基于OkHttp(简单版)

作者: 歇斯底里的苦笑 | 来源:发表于2019-05-13 16:39 被阅读28次
1、添加依赖
 implementation 'com.yanxuwen:http-api:1.0.5'
 annotationProcessor 'com.yanxuwen:http-compiler:1.0.5

只需要简单的2步骤就能实现请求。

定义接口

@NetServiceClass("")
public interface NetService {
  /**
     * get的简单请求
     */
    @GET("https://qybeta.321go.com/api/v1/home/index")
    void get(@Query("cid") String cid, @Query("token") String token, DataCallBack callBack);

    /**
     * get请求(URL中带有参数)
     */
    @GET("https://qybeta.321go.com/api/{version}/home/index")
    void get(@Path("version") String version, @Query("cid") String cid, @Query("token") String token, DataCallBack callBack);

    /**
     * 表单提交
     */
    @POST("https://marathonbeta.321go.com/api/v5/assis/user")
    void postForm(@Field("token") String token, @Field("auid") String auid, @Field("step") String step, @Field("formId") String formId, DataCallBack callBack);

    /**
     * json提交
     */
    @POST("http://public.api.fashionworldcn.com/api/my/login")
    void postJson(@Param("mobile") String mobile, @Param("password") String password, DataCallBack callBack);

    /**
     * json 整串提交
     */
    @POST("http://public.api.fashionworldcn.com/api/my/login")
    void postJson(@Body String json, DataCallBack callBack);

    /**
     * json 实体类提交
     */
    @POST("http://public.api.fashionworldcn.com/api/my/login")
    void postJson(@Body LoginBuild json, DataCallBack callBack);

    /**
     * 请求跟返回经过统一特殊处理。
     */
    @POST("http://a.szy.com:4480/SignManageServer/sign/appHandle")
    @Deal
    void onDeal(@Field("reqcode") String reqcode, @Param("pageNo") String pageNo, @Param("pageSize") String pageSize, @Param("schoolId") String schoolId, DataCallBack callBack);

    void setHttpDealMethod(HttpDealMethod l);

}

执行请求

/**
     * 表单提交
     */
    public void postForm(View view) {
        String token = "QpglbXabpgvKa5d1cqjq5Qb6KKldbvz6dmr0AVjXUlljQsVC5gkKA8IkEChX1ssY";
        String auid = "2c93e148674de85b01674ebc7e760018";
        String step = "2";
        String formId = "4f0e43a7c6095adfc0e5b216d9914f9e";
        //String.class代表返回类型,可以任何类型,记得要跟json的格式进行匹配。
        HttpRequest.getNetService().postForm(token, auid, step, formId, new DataCallBack<String>(String.class) {
            @Override
            public void onHttpSuccess(String result) {
                Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show();
            }
            @Override
            public void onHttpFail(NetError netError) {
                Toast.makeText(MainActivity.this, netError.getMessage(), Toast.LENGTH_LONG).show();
            }
        });
    }

demo 点击下载

提取码:4qm7

完整版简书 点击跳转

github 点击跳转

如果你喜欢就去 github 帮我star下,非常感谢o(∩_∩)o~~~

相关文章

网友评论

    本文标题:极简HTTP请求,基于OkHttp(简单版)

    本文链接:https://www.haomeiwen.com/subject/adrraqtx.html