android studio 30天学习笔记-day 5-介绍retrofit(一)

在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格式一模一样https://ithelp.ithome.com.tw/upload/images/20210707/201389664U8o7Euux7.png

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的值了

结果
https://ithelp.ithome.com.tw/upload/images/20210707/201389665VzVkb31tk.png

明天会介绍retrofit各个步骤


<<:  认识与建立CSS样式表(DAY7)

>>:  【Day 05】format 函式

全端入门Day13_前端程序撰写之HTML

昨天安装好VS Code了,今天就要来使用VS Code写程序,那麽要写什麽程序呢? HTML! 今...

什麽是统一建模语言 (UML)?

UML是统一建模语言的简称,是一种标准化建模语言,由一组集成的图表组成,旨在帮助系统和软件开发人员指...

实习是进入职场前的探索

现在不管是学校课程规划或是同学主动想要了解职场,对於实习其实是一个可以看清自己的能力跟业界之间的差距...

[Day15] THM Startup

网址 : https://tryhackme.com/room/startup IP : 10.1...

第03天 - 环境建立(下)

前言: 今天来把环境都给整理完,如: 怎麽开启(展示).php档、引入 Bootstrap。 1.首...