Retrofit的简单使用

本文介绍如何使用Retrofit框架进行网络请求,包括配置环境、创建模型类和接口,以及发送GET和POST请求的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

       Retrofit:是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求,其源码详见OkHttp Github


二、简单使用

      1.首先需要导入第三方jar包

    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'

     2.创建模型类 JavaBean

 

      3.创建接口

           ①第一种Get接口

  public interface UrlService {
        /**
         * 这是一个电影接口 摘自网络
         * http://api.m.mtime.cn/PageSubArea/TrailerList.api
         */
        @GET("PageSubArea/{TrailerList}")
        Call<JavaBean> callGetTrailerListApi(@Path("TrailerList")String TrailerList);
 }

           或者写成

    @GET("PageSubArea/TrailerList.api")
    Call<com.jing.flowlayout.model.JavaBean.TrailersBean> getApi();

         ②第二种Get接口(有参数的接口)

 /**
     * http://mobile.ximalaya.com/mobile/discovery/v1/categories
     *        ?channel=and-d3&device=android&picVersion=13&scale=2
     */
    @GET("mobile/discovery/v1/categories")
    Call<JavaBean> getApi(@Query("channel")String channel,
                          @Query("device")String device,
                          @Query("picVersion")String picVersion,
                          @Query("scale")String scale);


            ③Post接口

   4.最后,进行网络请求数据

 /**
     * 进行网络请求数据
     */
    private void setUpView() {
        Retrofit retrofit =new Retrofit.Builder()
                .baseUrl("http://api.m.mtime.cn/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        UrlService api =retrofit.create(UrlService.class);
        Call<JavaBean> call = api.callGetTrailerListApi("TrailerList"+"."+"api");
        call.enqueue(new Callback<JavaBean>() {
            @Override
            public void onResponse(Call<JavaBean> call, Response<JavaBean> response) {
                Log.e(TAG, "onResponse: 请求成功");
                Log.e(TAG, "Url: "+response.raw().request().url());
                if (response !=null){
                    JavaBean body = response.body();
                    if (body !=null){
                        List<JavaBean.TrailersBean> trailers = body.getTrailers();
                        adapter.addDatas(trailers);

                    }
                }

            }

            @Override
            public void onFailure(Call<JavaBean> call, Throwable t) {
                Log.e(TAG, "onFailure:请求失败"+t.getMessage() );
            }
        });

    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值