Retrofit

来源:互联网 发布:世界最好的聊天软件 编辑:程序博客网 时间:2024/06/01 12:34
/** * 1. 类的用途 网络接口 * 2. @author forever * 3. @date 2017/11/1 14:32 */public interface ApiService {    /**     * 无参get请求     * http://service.meiyinkeqiu.com/service/ads/cptj     *     * @return     */    @GET("service/ads/cptj")    Call<News> getNoParams();    /**     * 有参get请求     * 拼接参数 /形式     *     * @return https://api.github.com/users/baiiu     */    @GET("users/{user}")   Call<User> getHasParams(@Path("user") String user);    /**     * http://www.93.gov.cn/93app/data.do     * channelId     * startNum     * 拼接 ? &     * 为主     */    @GET("data.do")   Call<Party> getHasParams2(@Query("channelId")int channelId, @Query("startNum") int startNum );    /**     * post请求 http://120.27.23.105/user/reg 注册     */    @POST("reg")    @FormUrlEncoded//支持表单提交    Call<User> register(@Field("mobile")String mobile,@Field("password")String password);}
public class Api {    //无参    public  final static  String baseUrl1 ="http://service.meiyinkeqiu.com/";    //有参 /    public  final static  String baseUrl2 ="https://api.github.com/";    //有参 ?&    public  final static  String baseUrl3 ="http://www.93.gov.cn/93app/";    //健值对 字符串  //  public  final static  String baseUrl4 ="http://120.27.23.105/user/";    public  final static  String baseUrl4 ="https://www.zhaoapi.cn/user/";    //上传图片    public  final static  String baseUrl5 ="http://169.254.249.24:8080/";}

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);       // getNoParams();      //  getHasParams();       // getHasParams2();        register();    }  //post请求    private void register() {        //创建Retrofit        Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.baseUrl4).addConverterFactory(GsonConverterFactory.create()).build();        ////通过动态代理的方式得到网络接口对象        ApiService apiService = retrofit.create(ApiService.class);        Call<User> call = apiService.register("13511237846", "123456");        call.enqueue(new Callback<User>() {            @Override            public void onResponse(Call<User> call, Response<User> response) {                Toast.makeText(MainActivity.this, "注册成功", Toast.LENGTH_SHORT).show();            }            @Override            public void onFailure(Call<User> call, Throwable t) {            }        });    }    //有参get请求    private void getHasParams2() {        //创建Retrofit        Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.baseUrl3).addConverterFactory(GsonConverterFactory.create()).build();        ////通过动态代理的方式得到网络接口对象        ApiService apiService = retrofit.create(ApiService.class);        Call<Party> call = apiService.getHasParams2(0, 0);        call.enqueue(new Callback<Party>() {            @Override            public void onResponse(Call<Party> call, Response<Party> response) {                Party party = response.body();                String result = party.getResult();                Log.i("xxx",result);            }            @Override            public void onFailure(Call<Party> call, Throwable t) {            }        });    }    //有参get请求    private void getHasParams() {        //创建Retrofit        Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.baseUrl2).addConverterFactory(GsonConverterFactory.create()).build();        ////通过动态代理的方式得到网络接口对象        ApiService apiService = retrofit.create(ApiService.class);        Call<User> call = apiService.getHasParams("forever");        call.enqueue(new Callback<User>() {            @Override            public void onResponse(Call<User> call, Response<User> response) {                User user = response.body();                String avatar_url = user.getAvatar_url();                Log.i("xxx",avatar_url);            }            @Override            public void onFailure(Call<User> call, Throwable t) {            }        });    }    //无参get请求    private void getNoParams() {        //创建Retrofit        Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.baseUrl1).addConverterFactory(GsonConverterFactory.create()).build();        //通过动态代理的方式得到网络接口对象        ApiService apiService = retrofit.create(ApiService.class);        //得到Call对象        Call<News> call = apiService.getNoParams();        //执行异步请求 回调在主线程        call.enqueue(new Callback<News>() {            @Override            public void onResponse(Call<News> call, Response<News> response) {                News news = response.body();                List<News.AdsBean> ads = news.getAds();                for (int i = 0; i < ads.size(); i++) {                    News.AdsBean adsBean = ads.get(i);                    Log.i("xxx",adsBean.getGonggaoren());                }            }            @Override            public void onFailure(Call<News> call, Throwable t) {            }        });    }}
compile 'com.android.support:appcompat-v7:26.+'compile 'com.android.support.constraint:constraint-layout:1.0.2'testCompile 'junit:junit:4.12'compile 'com.squareup.retrofit2:retrofit:2.0.1'compile 'com.squareup.okio:okio:1.5.0'compile 'com.squareup.okhttp3:okhttp:3.2.0'compile 'com.squareup.retrofit2:converter-gson:2.0.1'compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'

原创粉丝点击