1.网络请求拼接参数action?account=111&passwd=111
1.添加Retrofit和okhttp的依赖
compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.okhttp3:okhttp:3.1.2'
2.创建用于描述网络请求的接口
public interface RetrofitRequestInterface { //3.创建用于描述网络请求的接口 @POST("userLogin/login.action") @FormUrlEncoded Call<ResponseBody> getCall(@Field("account") String account, @Field("passwd") String password); }
用ResponseBody泛型是系统自带的,指的是可以获取服务器返回的json数据,getCall()里面的是以键值对的形式往里面传递参数。
3.创建Retrofit实例
//4.创建Retrofit实例 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://www.***/***/") .build();
4.创建网络请求接口实例并配置网络请求参数
//5.创建网络接口的实例 RetrofitRequestInterface retrofitRequestInterface = retrofit.create(RetrofitRequestInterface.class);
5.发送网络请求并处理数据
//对发送请求进行封装 Call<ResponseBody> call = retrofitRequestInterface.getCall(account, psd); //6.发送网络请求(异步) call.enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { try { String jsonStr = new String(response.body().bytes()); } catch (IOException e) { e.printStackTrace(); } ToastUtils.show(LoginActivity.this,"请求成功"); } @Override public void onFailure(Call<ResponseBody> call, Throwable t) { ToastUtils.show(LoginActivity.this,"请求失败"); } });
account和psd是想url传参数,jsonStr就是请求回来的json数据
6.注意要添加网络请求权限