Retrofit简单实用
来源:互联网 发布:苹果mac输入法设置 编辑:程序博客网 时间:2024/06/05 19:37
//导入依赖
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'
//创建Apiservice接口类
package android_rxjava.baway.com.retrofitstudy;import retrofit2.Call;import retrofit2.http.Field;import retrofit2.http.FormUrlEncoded;import retrofit2.http.GET;import retrofit2.http.POST;import retrofit2.http.Path;import retrofit2.http.Query;/** * Created by C-PC on 2017/11/5. */public interface ApiService { /** * 无参的Get请求 */ @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);}//mainActivity类
package android_rxjava.baway.com.retrofitstudy;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.widget.Toast;import java.util.List;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;import retrofit2.Retrofit;import retrofit2.converter.gson.GsonConverterFactory;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=new Retrofit.Builder().baseUrl(Api.baseUrl4).addConverterFactory(GsonConverterFactory.create()).build(); ApiService service = retrofit.create(ApiService.class); Call<User> call = service.register("15137729818", "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请求2 private void getHasParams2(){ Retrofit retrofit=new Retrofit.Builder().baseUrl(Api.baseUrl3).addConverterFactory(GsonConverterFactory.create()).build(); //代理方式的到网络请求接口的对象 ApiService service = retrofit.create(ApiService.class); Call<Party> call=service.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) { } }); }}//Api类
package android_rxjava.baway.com.retrofitstudy;/** * Created by C-PC on 2017/11/5. */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/";}
阅读全文
0 0
- Retrofit简单实用
- 简单实用的mvp+retrofit+rxjava+dagger2
- Retrofit的简单实用,配置okhttpclient
- Retrofit(一)简单实用get方式
- Retrofit的简单使用
- retrofit 2.0 简单使用
- Retrofit的简单使用
- Retrofit+RxJava 简单学习
- Rxjava+Retrofit 简单使用
- Retrofit的简单使用
- Retrofit的简单使用方法
- Retrofit的简单应用
- Retrofit简单原理分析
- Retrofit的简单使用方法
- Retrofit简单使用
- Retrofit简单入门
- Retrofit简单尝试
- Retrofit简单使用手册
- 数据类型的取值范围计算
- 自定义组合控件,自定义View,接口点击事件
- 自定义一个进度条+百分比
- 剑指offer--二叉搜索树的后序遍历序列
- 职业倦怠
- Retrofit简单实用
- 在BaseAdapter中 list优化 + 网络 获取图片利用线程传输
- 漫谈 WebRTC 一: 何谓Simulcast, WebRTC中的Simulcast
- 从源码看集合ArrayList
- 比较有索引和无索引的查询速度(在mysql数据库中)
- css js添加
- 115.2
- ultracompare中文乱码解决方法
- 树莓派修改LANG--中文显示