Android开发笔记之retrofit网络框架

retrofit网络请求框架
网络访问框架经过了从使用最原始的AsyncTask构建简单的网络访问框架(甚至不能称为框架),后来使用开源的android-async-http库,再到使用xUtil,后来再到使用google发布的volley库,一直不懈的寻找更好的解决方案,今天来分享一个retrofit网络框架的网络请求
,这里只实现一个简单的网络请求到数据的过程


使用网络请求第一步不用我在详细的解释说明了
添加如下代码

<uses-permission android:name="android.permission.INTERNET" />

当然使用retrofit网络框架也需要导入依赖,加上此句代码就可以了,会自动的去下载所需要的资源,很快,

compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'

  • retrofit网络框架的使用
  • 使用retrofit网络框架分为如下几步
  • 第一步:实现一个自定义的接口类,这里定义请求方式以及路径或者并接的后缀
  • 第二步初始化一个retrofit对象
  • 第三步初始化一个接口对象
  • 第四步网络请求

分为以上四步,接下来就具体的按步骤来实现


第一步:
自定义个接口类MyHttpServerInterface.class

import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.GET;

/**
 * Created by user on 2016/7/30.
 * 网络请求接口通过retrofit网络框架实现网路请求数据
 * 此处的33943825是一个主播专辑的id,通过并接拿到数据
 *  @GET("33943825")此处声明请求方式为get请求
 * ("33943825")此处也可以是你的base_url
 */
public interface MyHttpServerInterface {
    @GET("33943825")
    Call<ResponseBody> getLatestJsonString();
}

第二步初始化retrofit对象

public static String ANCHOR_ALBUM_BASE_URL=
            "http://mobile.ximalaya.com/mobile/v1/artist/tracks?device=android&pageId=1&toUid=";
        Retrofit retrofit = new Retrofit.Builder().baseUrl(ANCHOR_ALBUM_BASE_URL)              .addConverterFactory(GsonConverterFactory.create())
.client(new OkHttpClient()).build();

第三步:初始化接口,但是要记住,放在初始化retrofit对象后面

MyHttpServerInterface httpStores =retrofit.create(MyHttpServerInterface.class);

第四步网络请求

Call<ResponseBody> call = httpStores.getLatestJsonString();
        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, retrofit2.Response<ResponseBody> response) {
                if (response.isSuccess()) {
                    try {
                        String result = response.body().string();
                        Log.d("sxh", "onResponse: "+result);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {

            }
        });

以上就是所有的过程,除了自定义接口类这一步,其它三步均写在一个方法内,直接调用这个方法就可以,今天就先实现一个基本的网络请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值