retrofit框架

本文介绍如何使用Retrofit进行网络请求,包括配置依赖、创建请求接口、定义实体类及实现异步请求等步骤。

模式:观察者模式
导包

  //retrofit 包
 implementation 'com.squareup.retrofit2:retrofit:2.0.2'
  //gson 包 解析用到.addConverterFactory(GsonConverterFactory.create())
 implementation 'com.squareup.retrofit2:converter-gson:2.0.2'

使用:

>package com.example.retrofitdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class MainActivity extends AppCompatActivity {

    /**
     * 1. 导包
     * 2. 创建接受接口 用注解方式写明请求方式:get("url后面部分或者其他") post("/form")
     * 3. 创建实体类
     * 4. 创建Retrofit实例通过build方法
     * 5. 实例化request
     * 6. call.enqueue(new Callback<类>{....})开始网络请求
     * 7. 在onResponse方法中获取数据基本与okhttp就一样了
     * */

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        request();
    }

    public void request(){

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://fy.iciba.com/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        GetRequestInterface request = retrofit.create(GetRequestInterface.class);

        Call<Translation> call = request.getCall();
        call.enqueue(new Callback<Translation>( ) {
            @Override
            public void onResponse(Call<Translation> call, Response<Translation> response) {
                response.body().show();

            }

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

            }
        });

    }
}

接口类

package com.example.retrofitdemo;

import retrofit2.Call;
import retrofit2.http.GET;

public interface GetRequestInterface {

    @GET("ajax.php?a=fy&f=auto&t=auto&w=hello%20world")
    Call<Translation> getCall();

}

Bean数据类

>public class Translation {
    private int status;

    private content content;

    private static class content{
        private String from;
        private String to;
        private String vendor;
        private String out;
        private int errNo;
    }

    //定义 输出返回数据 的方法
    public void show() {
        System.out.println(status);

        System.out.println(content.from);
        System.out.println(content.to);
        System.out.println(content.vendor);
        System.out.println(content.out);
        System.out.println(content.errNo);
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值