Retrofit
来源:互联网 发布:世界最好的聊天软件 编辑:程序博客网 时间:2024/06/01 12:34
/** * 1. 类的用途 网络接口 * 2. @author forever * 3. @date 2017/11/1 14:32 */public interface ApiService { /** * 无参get请求 * http://service.meiyinkeqiu.com/service/ads/cptj * * @return */ @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);}
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/";}
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 retrofit = new Retrofit.Builder().baseUrl(Api.baseUrl4).addConverterFactory(GsonConverterFactory.create()).build(); ////通过动态代理的方式得到网络接口对象 ApiService apiService = retrofit.create(ApiService.class); Call<User> call = apiService.register("13511237846", "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请求 private void getHasParams2() { //创建Retrofit Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.baseUrl3).addConverterFactory(GsonConverterFactory.create()).build(); ////通过动态代理的方式得到网络接口对象 ApiService apiService = retrofit.create(ApiService.class); Call<Party> call = apiService.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) { } }); }}compile 'com.android.support:appcompat-v7:26.+'compile 'com.android.support.constraint:constraint-layout:1.0.2'testCompile 'junit:junit:4.12'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'
阅读全文
0 0
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- retrofit
- Retrofit
- retrofit
- SQL 习题进阶 一
- ButterKnife
- 蓝牙的使用
- RXJava+retrofit2
- Python变量的高级应用
- Retrofit
- Java基础部分设计模式
- 一批文学电子书-手机上看
- python学习笔记-实例方法、类方法、静态方法
- Android二维码的扫描和制作
- 自定义组件
- HDU-2013(蟠桃记)
- 奇异值分解 VS 特征值分解
- 【R】R-Shinny的一些笔记