Retrofit简单实用

//导入依赖

 

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值