博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android--Retrofit的简单使用(一)
阅读量:6502 次
发布时间:2019-06-24

本文共 4097 字,大约阅读时间需要 13 分钟。

1,如果不太了解retrofit的同学可以先去官网学习一下简单使用:http://square.github.io/retrofit/,这里我们以一个简单的Get请求的例子来练习一下

2,https://api.douban.com/v2/movie/top250?start=0&count=10 目标地址,由于数据太多我就不再啰嗦数据解析了,如果觉得Gson数据麻烦的话可以使用GsonFormat插件,先来看看怎么添加依赖吧

apply plugin: 'com.android.application'android {    compileSdkVersion 25    buildToolsVersion "25.0.0"    defaultConfig {        applicationId "com.qianmo.retrofitdemo"        minSdkVersion 15        targetSdkVersion 25        versionCode 1        versionName "1.0"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:25.0.0'    compile 'io.reactivex:rxjava:1.1.0'    compile 'io.reactivex:rxandroid:1.1.0'    compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'    compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4'    compile 'com.google.code.gson:gson:2.6.2'    compile 'com.jakewharton:butterknife:7.0.1'   //这里其实只需要添加下面的这几个就可以了    compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'    compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4'    compile 'com.google.code.gson:gson:2.6.2'    compile 'com.jakewharton:butterknife:7.0.1}

2,看一下我们的布局文件

再看看我们的Activity

package com.qianmo.retrofitdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.TextView;import com.qianmo.retrofitdemo.entry.MovieEntity;import com.qianmo.retrofitdemo.http.MovieService;import butterknife.Bind;import butterknife.ButterKnife;import butterknife.OnClick;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;import retrofit2.Retrofit;import retrofit2.converter.gson.GsonConverterFactory;public class MainActivity extends AppCompatActivity {    @Bind(R.id.tv_show)    TextView tvShow;    @Bind(R.id.btn_request)    Button btnRequest;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.bind(this);    }    @OnClick({R.id.btn_request})    public void onClick(View view) {        switch (view.getId()) {            case R.id.btn_request:                getMovie();                break;        }    }    //请求网络数据    private void getMovie() {            }        }

由于是网络请求,所以千万别忘记网络请求权限

接下来为我们的数据创建一个bean,MovieBean,代码太多了,就不贴了,然后就开始创建我们的service接口,由于是get请求的基本语法,所以就没什么可以讲解的

package com.qianmo.retrofitdemo.http;import com.qianmo.retrofitdemo.entry.MovieEntity;import retrofit2.Call;import retrofit2.http.GET;import retrofit2.http.Query;/** * Created by wangjitao on 2016/11/3 0003. * 获取电影列表接口 */public interface MovieService {    @GET("top250")    Call
getTopMovie(@Query("start") int start ,@Query("count") int count);}

在Activity中使用

String baseUrl = "https://api.douban.com/v2/movie/";        //创建Retrofit对象        Retrofit retrofit = new Retrofit.Builder()                .baseUrl(baseUrl)                .addConverterFactory(GsonConverterFactory.create())                .build();        MovieService movieService = retrofit.create(MovieService.class);        Call
call = movieService.getTopMovie(0, 10); call.enqueue(new Callback
() { @Override public void onResponse(Call
call, Response
response) { tvShow.setText(response.body().getTitle()); } @Override public void onFailure(Call
call, Throwable t) { tvShow.setText(t.getMessage()); } });

首先创建Retrofit对象,然后在创建Call对象,这样我们就可以请求网络数据了,感觉很简单啊  有木有·····  

  

 

  

  

转载于:https://www.cnblogs.com/wjtaigwh/p/6025802.html

你可能感兴趣的文章
smarty使用php代码,笑谈配置,使用Smarty技术_php
查看>>
oracle数据实际值限制,c# – Oracle数据库TNS密钥“数据源”的值长度超过了’128’的限制...
查看>>
silk v3 decoder php,解码转换QQ微信的SILK v3编码音频为MP3或其他格式
查看>>
linux不能访问80端口,lunux开放80端口(本地访问不了linux文件可能是这个原因)...
查看>>
android单位转换小程序,微信小程序中rpx与rem单位转换
查看>>
html绝对定位重叠,HTML_firefox下绝对定位元素重叠造成不可点击问题,重构地图网站过程中碰到的,f - phpStudy...
查看>>
ps切图教程 android,PS前端切图完整教程
查看>>
html显示服务器状态,显示服务器时间并一直显示(html代码)
查看>>
在线html代码优化,网站seo优化html代码方法
查看>>
HTML如何把输入框变成必填值,required输入框为必填项
查看>>
在html中哪一个不是链接的目标属性,HTML试题
查看>>
android otg 挂载流程,android USB OTG功能如何打开及实现
查看>>
html属性board,pin_board.html
查看>>
html定位有几种,POSITION定位有哪几种?各有什么特点?
查看>>
背锅侠逆袭之路
查看>>
演示:使用协议分析器取证IPv6的报文结构
查看>>
oracle 11gr2 rac中的4种IP解说
查看>>
为什么你找不到工作?
查看>>
20 个免费的 jQuery 的工具提示插件:
查看>>
只有在北方的中国帝国能力享受免费的商业课程:财富规划法与愿景
查看>>