Retrofit

Android studio使用新控件,网络请求框架Retrofit

以下为使用方式:
——————————————————————————
首先导入包:com.squareup.retrofit2:retrofit:2.1.0
com.squareup.retrofit2:converter-gson:2.1.0

Retrofit 2 须导入converter-gson来解析获取到的json数据

创建一个interface,用于拼接URL和请求:

import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;

/**
 * Created by Zheng on 2016/9/1.
 */
public interface Request {

    //get请求:{}里面的value由@Path注解传入方法
    @GET("user/{value}")      // 这段url将拼在BaseUrl后面
    public Call<UserModel> loginGet(@Path("value") String value);


    //post请求:通过@FormUrlEncoded、和@POST注解,指明访问的地址
    @FormUrlEncoded
    @POST("Login")           // 这段url将拼在BaseUrl后面
    //通过@Field来指定key,后面跟上value
    Call<UserModel> loginPost(@Field("user") String user);

}

RetrofitActivity参考代码:

/** 建议:Retrofit2 URL定义方式,BaseUrl末尾连接处的 "/" 写在BaseUrl的末尾,而不要写在interface注解请求@URL的头部 **/
    String URL = "https://192.168.1.1/";  // BASE URL

 //为BaseUrl创建一个适配器,设置Gson解析器
    Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();


 //为我们得到类创建一个服务适配器
    Request request = retrofit.create(Request.class);

 //get请求
    Call<UserModel> call = request.loginGet("zheng001");

 //post请求
    Call<UserModel> call = request.LoginPost("zheng001");

    call.enqueue(new Callback<UserModel>() {
            @Override
            public void onResponse(Call<UserModel> call, Response<UserModel> response) {
                //从response.body()得到结果回调
                UserModel user = response.body();
                tv.setText(user.getUserName());

                //取消加载匡
                Cancelprogress();
            }

            @Override
            public void onFailure(Call<UserModel> call, Throwable t) {

                //取消加载匡
                Cancelprogress();
            }
        });


 //取消请求事务调用方法
    call.cancel();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值