在android开发,很常会用到网络资料请求的套件,retrofit是一种 HTTP 请求的工具,使用 REST API 设计,由 RESTful Client 向 Server 发出请求。
retrofit使用
首先在gradle加入
implementation'com.squareup.retrofit2:retrofit:2.5.0'
implementation'com.squareup.retrofit2:converter-gson:2.5.0'
在androidManifest.xml添加权限
<uses-permission android:name="android.permission.INTERNET"/>
创建DataItem资料类别
必须跟你Json格式一模一样
public class DataItem {
private int userId;
private int id;
private String title;
@SerializedName("body")//@SerializedName注解可以让String text得到body的值
private String text;
public int getUserId() {
return userId;
}
public int getId() {
return id;
}
public String getTitle() {
return title;
}
public String getText() {
return text;
}
创建interface
public interface ApiGet {
@GET("posts")
Call<DataItem> getPosts();
}
回到MainActivity建立retrofit(写在onCreate())
Retrofit retrofit=new Retrofit.Builder()
.baseUrl("https://jsonplaceholder.typicode.com/") //连接你要的uri
.addConverterFactory(GsonConverterFactory.create()) //gson解析
.build();
ApiGet apiGet =retrofit.create(ApiGet.class);
Call<DataItem> call =apiGet.getPosts(); //呼叫call连线服务
call.enqueue(new Callback<DataItem>() { //透过 Callback 来等待回传成功或失败的资料
@Override
public void onResponse(Call<DataItem> call, Response<DataItem> response) {
Log.d("API", "id: " + response.body().getId());
Log.d("API", "User Id: " + response.body().getUserId());
Log.d("API", "Title: " + response.body().getTitle());
Log.d("API", "Text: " + response.body().getText());
}
@Override
public void onFailure(Call<DataItem> call, Throwable t) {
Log.d("API", "fail");
}
});
这样就从 https://jsonplaceholder.typicode.com/ 可以得到get的值了
结果
明天会介绍retrofit各个步骤
昨天安装好VS Code了,今天就要来使用VS Code写程序,那麽要写什麽程序呢? HTML! 今...
UML是统一建模语言的简称,是一种标准化建模语言,由一组集成的图表组成,旨在帮助系统和软件开发人员指...
现在不管是学校课程规划或是同学主动想要了解职场,对於实习其实是一个可以看清自己的能力跟业界之间的差距...
网址 : https://tryhackme.com/room/startup IP : 10.1...
前言: 今天来把环境都给整理完,如: 怎麽开启(展示).php档、引入 Bootstrap。 1.首...