当前位置:   article > 正文

零基础学鸿蒙编程-网络请求_鸿蒙ets网络请求

鸿蒙ets网络请求

简要介绍

本文介绍如何在鸿蒙中使用网络请求,获取服务器数据并进行处理。

集成步骤

  1. entry工程的build.gradle中添加依赖
    implementation 'com.squareup.retrofit2:retrofit:2.5.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
  • 1
  • 2
  1. 在config.json中添加权限
    "reqPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 添加数据类:Task.java
public class Task {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  1. 添加网络接口管理类:ApiManager.java
public class ApiManager {
    private static final String BASE_URL = "https://gitee.com/";

    private static ApiService apiService;
    private static ApiManager instance = new ApiManager();

    private ApiManager() {
        apiService = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .client(new OkHttpClient.Builder().build())
                .build().create(ApiService.class);
    }

    public static ApiManager getInstance() {
        return instance;
    }

    public ApiService getApiService() {
        return apiService;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  1. 添加网络接口调用类:ApiService.java
public interface ApiService {
    @GET("hspbc/harmonyos_demos/raw/master/networkDemo/data.json")
    Call<Task> queryTask();
}

  • 1
  • 2
  • 3
  • 4
  • 5
  1. java代码中调用:MainAbilitySlice.java
public class MainAbilitySlice extends AbilitySlice {

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        findComponentById(ResourceTable.Id_text).setClickedListener(component -> query());
    }

    private void query() {
        ApiManager.getInstance().getApiService().queryTask().enqueue(new Callback<Task>() {
            @Override
            public void onResponse(Call<Task> call, Response<Task> response) {
                if (!response.isSuccessful() || response.body() == null) {
                    onFailure(null, null);
                    return;
                }
                Task result = response.body();
                new ToastDialog(getContext()).setText(result.getName()).show();
            }

            @Override
            public void onFailure(Call<Task> call, Throwable throwable) {
                HiLog.warn(new HiLogLabel(HiLog.LOG_APP, 0, "===demo==="), "网页访问异常");
            }
        });
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

效果图

完整源代码

https://gitee.com/hspbc/harmonyos_demos/tree/master/networkDemo

零基础系列

《零基础学安卓编程》
《零基础学Java编程》
《零基础学鸿蒙编程》

关于我

厦门大学计算机专业 | 前华为工程师
专注《零基础学编程系列》,包含:Java | 安卓 | 前端 | Flutter | iOS | 小程序 | 鸿蒙
全网可关注:花生皮编程

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号