今天要来了解上一篇的各个步骤
1.创建资料类别
有个快速生成data class的插件,可以从File->setting->Plugins->搜寻GsonFormat并install,install完後重启Android Studio
创个新的class,右键 Generate->Gsonformat,把gson资料贴上去
按下ok後,可以修改其资料型态、变数
按下ok後,会生成对应的data class
public class Datamm {
/**
* userId : 1
* id : 1
* title : sunt aut facere repellat provident occaecati excepturi optio reprehenderit
* body : quia et suscipit
suscipit recusandae consequuntur expedita et cum
reprehenderit molestiae ut ut quas totam
nostrum rerum est autem sunt rem eveniet architecto
*/
private int userId;
private int id;
private String title;
private String body;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
}
当然也可以自己手打啦,首先设定对应gson格式的data
public class Datamm {
private int userId;
private int id;
private String title;
private String body;
}
然後按右键Generate->getter and setter,全部选取後按下Ok,也会出现跟上面一样的data class
建立retrofit
Retrofit retrofit=new Retrofit.Builder()
.baseUrl("https://jsonplaceholder.typicode.com/") //连接你要的uri
.addConverterFactory(GsonConverterFactory.create()) //gson解析
.build();
interface
@GET
@GET("posts")
Call<DataItem> getPosts();
@GET("posts/{id}") //可以用@Path将新的参数带入{}
Call<DataItem> getPosts(@Path("id") int id);
@POST
@POST("posts") // @Body表示要传送Body资料
Call<DataItem> getPosts(@Body Posts posts);
@PUT
@PUT("posts")
Call<DataItem> getPosts();
@DELETE
@DELETE("posts")
Call<DataItem> getPosts();
最後使用enqueue进行异步操作的请求
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");
}
});
这样就完成了
在前面我们介绍到了各种建立以及产生pod的方式,但是当你已经建构好一个系统後,写好的程序要更新以及测...
嗨嗨大家今天过得好吗?我今天成功煎了一颗蛋。今天的篇幅虽然看似有点短,但是里面的内容却是崭新且重要的...
现在使用智慧型手机比率最高,手机画面很小,所以在制作网页时应注意以下细节 只显示重要的资讯及减少栏位...
一. 为何需要断词 最主要的原因就是中文的最小一个单位就是一个词,通常不能直接喂一个句子给你的语言模...
前言 天啊今天整个非常赶,23:00到家打开发现今天是hard的题目(446. Arithmetic...