- Retrofit使用步骤:
①. 到依赖,加网路权限
依赖 Retrofit :implementation 'com.squareup.retrofit2:retrofit:2.5.0'
依赖 Retrofit.converterimplementation 'com.squareup.retrofit2:converter-gson:2.5.0'
依赖 Gson:implementation 'com.google.code.gson:gson:2.2.4'
权限: <uses-permission android:name="android.permission.INTERNET"/>
②. 创建接口服务类:NaseURL和方法
③. 创建Retrofit对象
④. 通过Retrofit对象获取接口服务对象
⑤. 接口服务对象调用自己的方法,获得Call对象
⑥. 通过call执行请求
接口服务类 (12种方式)
package com.example.day422;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import retrofit2.http.Url;
public interface ApiService {
String footUrl = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1";
String BaseUrl = "http://www.qubaobei.com/ios/cf/";
@GET("dish_list.php?stage_id=1&limit=20&page=1")
Call<ResponseBody>get1();
@GET("dish_list.php?")
Call<ResponseBody>get2(@Query("stage_id")String stage_id,@Query("limit")String limit,@Query("page")String page);
@GET("dish_list.php?")
Call<ResponseBody>get3(@QueryMap Map<String,String> map);
@POST("dish_list.php?")
@FormUrlEncoded
Call<ResponseBody>post1(@Field("stage_id")String stage_id,@Field("limit") String limit,@Field("page") String page);
@POST("dish_list.php?")
@FormUrlEncoded
Call<ResponseBody>post2(@FieldMap HashMap<String,String> map);
@POST("dish_list.php?")
@Headers("Content_Type:application/x-www-from-urlencoded")
Call<ResponseBody>post3(@Body RequestBody body);
@GET("dish_list.php?stage_id=1&limit=20&page=1")
Call<FootBean>foot();
@GET
Call<ResponseBody>get5(@Url String str);
@GET
Call<ResponseBody>get6(@Url String str ,@Query("stage_id") String stage_id,@Query("limit") String limit,@Query("page") String page);
@GET("{dish_list}.php?stage_id=1&limit=20&page=1")
Call<ResponseBody>get7(@Path("dish_list") String dish_list);
@POST("dish_list.php")
@Headers("Content-Type:application/json")
Call<ResponseBody>post4(@Body RequestBody body);
@POST()
Call<ResponseBody>post5(@Url String url, @Body RequestBody body , @Header("Content-Type") String deader);
}
Retrofit
package com.example.day422;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.HashMap;
import okhttp3.FormBody;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button button;
private Button btn_2;
private Button btn_3;
private Button btn_post1;
private Button btn_post2;
private Button btn_post3;
private Button btn_foot;
private Button btn_get5;
private Button btn_get6;
private Button btn_get7;
private Button btn_post4;
private Button btn_post5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
btn_2 = (Button) findViewById(R.id.btn_2);
btn_2.setOnClickListener(this);
btn_3 = (Button) findViewById(R.id.btn_3);
btn_3.setOnClickListener(this);
btn_post1 = (Button) findViewById(R.id.btn_post1);
btn_post1.setOnClickListener(this);
btn_post2 = (Button) findViewById(R.id.btn_post2);
btn_post2.setOnClickListener(this);
btn_post3 = (Button) findViewById(R.id.btn_post3);
btn_post3.setOnClickListener(this);
btn_foot = (Button) findViewById(R.id.btn_foot);
btn_foot.setOnClickListener(this);
btn_get5 = (Button) findViewById(R.id.btn_get5);
btn_get5.setOnClickListener(this);
btn_get6 = (Button) findViewById(R.id.btn_get6);
btn_get6.setOnClickListener(this);
btn_get7 = (Button) findViewById(R.id.btn_get7);
btn_get7.setOnClickListener(this);
btn_post4 = (Button) findViewById(R.id.btn_post4);
btn_post4.setOnClickListener(this);
btn_post5 = (Button) findViewById(R.id.btn_post5);
btn_post5.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
get1();
break;
case R.id.btn_2:
get2();
break;
case R.id.btn_3:
get3();
break;
case R.id.btn_post1:
post1();
break;
case R.id.btn_post2:
post2();
break;
case R.id.btn_post3:
post3();
break;
case R.id.btn_foot:
foot();
break;
case R.id.btn_get5:
get5();
break;
case R.id.btn_get6:
get6();
break;
case R.id.btn_get7:
get7();
break;
case R.id.btn_post4:
post4();
break;
case R.id.btn_post5:
post5();
break;
}
}
private void post5() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.BaseUrl)
.build();
ApiService apiService = retrofit.create(ApiService.class);
FormBody body = new FormBody.Builder()
.add("stage_id", "1")
.add("limit", "20")
.add("page", "1")
.build();
Call<ResponseBody> call = apiService.post5("dish_list.php",body,"application/json");
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
String json = response.body().string();
FootBean footBean = new Gson().fromJson(json, FootBean.class);
btn_post5.setText(footBean.getData().get(0).getTitle());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
}
private void post4() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.BaseUrl)
.build();
ApiService apiService = retrofit.create(ApiService.class);
FormBody body = new FormBody.Builder()
.add("stage_id", "1")
.add("limit", "20")
.add("page", "1")
.build();
Call<ResponseBody> call = apiService.post4(body);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
String json = response.body().string();
FootBean footBean = new Gson().fromJson(json, FootBean.class);
btn_post4.setText(footBean.getData().get(0).getTitle());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
}
private void get7() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.BaseUrl)
.build();
ApiService apiService = retrofit.create(ApiService.class);
Call<ResponseBody> call = apiService.get7("dish_list");
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
String json = response.body().string();
FootBean footBean = new Gson().fromJson(json, FootBean.class);
btn_get7.setText(footBean.getData().get(0).getTitle());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
}
private void get6() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.BaseUrl)
.build();
ApiService apiService = retrofit.create(ApiService.class);
Call<ResponseBody> call = apiService.get6("dish_list.php", "1", "20", "1");
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
String json = response.body().string();
FootBean footBean = new Gson().fromJson(json, FootBean.class);
btn_get6.setText(footBean.getData().get(0).getTitle());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
}
private void get5() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.BaseUrl)
.build();
ApiService apiService = retrofit.create(ApiService.class);
Call<ResponseBody> call = apiService.get5("dish_list.php?stage_id=1&limit=20&page=1");
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
String json = response.body().string();
FootBean footBean = new Gson().fromJson(json, FootBean.class);
btn_get5.setText(footBean.getData().get(0).getTitle());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
}
private void foot() {
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(ApiService.BaseUrl)
.build();
ApiService service = retrofit.create(ApiService.class);
Call<FootBean> call = service.foot();
call.enqueue(new Callback<FootBean>() {
@Override
public void onResponse(Call<FootBean> call, Response<FootBean> response) {
btn_foot.setText(response.body().getData().get(0).getTitle());
}
@Override
public void onFailure(Call<FootBean> call, Throwable t) {
}
});
}
private void post3() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.BaseUrl)
.build();
ApiService apiService = retrofit.create(ApiService.class);
FormBody body = new FormBody.Builder()
.add("stage_id", "1")
.add("limit", "20")
.add("page", "1")
.build();
Call<ResponseBody> call = apiService.post3(body);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
String json = response.body().string();
FootBean footBean = new Gson().fromJson(json, FootBean.class);
btn_post3.setText(footBean.getData().get(0).getTitle());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
}
private void post2() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.BaseUrl)
.build();
ApiService service = retrofit.create(ApiService.class);
HashMap<String, String> map = new HashMap<>();
map.put("stage_id", "1");
map.put("limit", "20");
map.put("page", "1");
Call<ResponseBody> call = service.post2(map);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
String json = response.body().string();
FootBean footBean = new Gson().fromJson(json, FootBean.class);
btn_post2.setText(footBean.getData().get(0).getTitle());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
}
private void post1() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.BaseUrl)
.build();
ApiService service = retrofit.create(ApiService.class);
Call<ResponseBody> call = service.post1("1", "20", "1");
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
String json = response.body().string();
FootBean footBean = new Gson().fromJson(json, FootBean.class);
btn_post1.setText(footBean.getData().get(0).getTitle());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
}
private void get3() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.BaseUrl)
.build();
ApiService apiService = retrofit.create(ApiService.class);
HashMap<String, String> map = new HashMap<>();
map.put("stage_id", "1");
map.put("limit", "20");
map.put("page", "1");
Call<ResponseBody> call = apiService.get3(map);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
String json = response.body().string();
FootBean footBean = new Gson().fromJson(json, FootBean.class);
btn_3.setText(footBean.getData().get(1).getTitle());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
}
private void get2() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.BaseUrl)
.build();
ApiService apiService = retrofit.create(ApiService.class);
Call<ResponseBody> call = apiService.get2("1", "20", "1");
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
String json = response.body().string();
FootBean footBean = new Gson().fromJson(json, FootBean.class);
btn_2.setText(footBean.getData().get(0).getTitle());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Log.i("taf", t.getMessage());
}
});
}
private void get1() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.BaseUrl)
.build();
ApiService apiService = retrofit.create(ApiService.class);
Call<ResponseBody> call = apiService.get1();
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
Log.i("tag", Thread.currentThread().getName() + " 当前线程");
try {
String json = response.body().string();
Log.i("tag", json);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Log.i("tag", t.getMessage());
}
});
}
}
注:纯属胡写,仅供作者参考,若有帮助,不用感谢
网友评论