//导入依赖
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/";
}