HarmonyOS推出的服务卡片,是FA(Feature Ability)的界面展现形式,将FA的重要信息或者操作前置到卡片上。鸿蒙的服务卡片尺寸分别为:微(1×2)、小( 2×2 )、中( 2×4 )、大(4×4)4种尺寸。服务卡片以多种元组合而成,有图片,文本,数据等等,那么这图片,数据文本如何而来呢,当然是从服务器获取,那么进入今天我们的主题,服务卡片与服务交互,俗话说知识改变命运,合抱之木,生于毫末。万丈高楼平地起,麻雀虽小,五脏俱全。我想说的是基础真的真的很重要。
学习一门语言必须掌握基础,基础牢固可以少走很多弯路。同样学习服务卡片与服务器交互开发基础也很重要,举个例子,学习一门功夫,基础就相当于内功,招式就相当于语言开发中的各种框架。今天咱们一起学习服务卡片原生的网络请求的内功,也就是服务卡片原生的方式去写一套网络请求。了解原理再去使用或者学习框架会事半功倍。话不多说咱们开始。
服务卡片网络访问基础配置
服务卡片的网络配置是不是很眼熟,没错跟Android很像,需要开启访问网络权限。
鸿蒙系统是支持java的,正好鄙人是Android的,所以来一波java版的原生请求服务器数据代码:
首先来个https模式的get请求,简单粗暴整起来:
/***
* get请求服务器
* */
public static String HttpGet(String urlStr){
StringBuffer sb=new StringBuffer();
try {
//添加https信任
SSLContext sslContext=SSLContext.getInstance("SSL");
HttpX509TrustManager[] tm= new HttpX509TrustManager[]{new HttpX509TrustManager()};
//第一个参数为协议,第二个参数为提供者(可以缺省)
sslContext.init(null,tm,new SecureRandom());
HostnameVerifier hostnameVerifier=new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
System.out.println("WARNING: Hostname is not matched for cert.");
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
URL url=new URL(urlStr);
HttpURLConnection connection=null;
if (url.getProtocol().toUpperCase().equals("HTTPS")){
trustAllHost();
HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
connection = https;
}else{
connection = (HttpURLConnection) url.openConnection();
}
connection.setRequestMethod("GET");
connect