当前位置: 首页 > news >正文

网站开发职业工资宁波seo排名优化培训

网站开发职业工资,宁波seo排名优化培训,武汉建设网官网首页,制作相册的模板网络访问接口,使用频次最高。之前习惯了uniapp下的网络接口风格,使用起来贼简单方便。转战到鸿蒙上后,原始网络接口写着真累啊!目标让鸿蒙上网络接口使用,简单程度比肩uniapp,比Axios更轻量级。源码量也不多…

网络访问接口,使用频次最高。之前习惯了uniapp下的网络接口风格,使用起来贼简单方便。转战到鸿蒙上后,原始网络接口写着真累啊!目标让鸿蒙上网络接口使用,简单程度比肩uniapp,比Axios更轻量级。源码量也不多,但更方便定制优化,功能也不弱。

前言

接上篇,HarmonyOS NEXT应用开发(一、打造最好用的网络通信模块组件)-CSDN博客​​​​​​网络库已经封装好啦,成功发布到了OpenHarmony三方库中心仓。地址:OpenHarmony三方库中心仓

但是现在还没人气,可能一些伙伴不会用。这里特写了篇文章和使用demo,发出来让大家看下,原来写网络接口竟可以如此简单。

有多简单?demo源码地址:zhihudaily: HarmonyOS NEXT 项目开发实战,仿知乎日报的实现

看以下接口示例:

首先项目中先引入我发布到鸿蒙中心仓库的h_request网络库:

"dependencies": {"@yyz116/h_request": "1.0.1"}

 以下home.ts的首页相关的api接口中,两行代码就写好了两个接口,够简单清晰吧。一个是获取影视轮播图的get接口,一个是获取影视数据的post接口请求。

//main/ets/common/api/home.ts
import { setRequestConfig } from '../../utils/http';
import { BaseResponse,SwiperData,HotMovieReq,MovieRespData } from '../bean/ApiTypes';// 调用setRequestConfig函数进行请求配置
setRequestConfig();const http = globalThis.$http;// 获取轮播图api接口
export const getSwiperList = (): Promise<BaseResponse<SwiperData>> => http.get('/swiperdata');// 获取热门影视接口
export const getHotMovie = (req:HotMovieReq): Promise<BaseResponse<MovieRespData>> => http.post('/hotmovie',req);

详细示例

接口实现

准备两个后台接口:

### 1.首页,影视轮播图
get http://175.178.126.10:8000/api/v1/swiperdata### 2.首页,正在热映的电影
post http://175.178.126.10:8000/api/v1/hotmovie
Content-Type:application/json{"start": 0,"count": 1,"city": "郑州"
}

在项目工程源码ets/main/common/bean/目录下,创建网络通信json包协议的type定义:

//file:ApiTypes.ts
export interface BaseResponse<T>{status: number;statusText:string;data:T;
}export interface ErrorResponse {code: number;message: string;data: [];
}// 轮播图响应数据
export interface SwiperItem{id:string;imageUrl:string;title:string;url:string;description:string;
}
export interface SwiperData {code: number;message: string;data: Array<SwiperItem>;
}// 热门影视请求数据
export interface HotMovieReq {start: number;count: number;city:string;
}
// 热门影视响应数据
interface MovieItem{id:string;cover:string;title:string;gener:string;rate:number;
}
export interface MovieRespData {code: number;message: string;data: Array<MovieItem>;count: number;start: number;total: number;title: string;
}

创建个utils文件夹,放置封装的http.ts工具类,这个主要用来配置全局后台服务地址,参数和设置全局拦截器,并把其网络请求实例挂载在ArkTS引擎实例内部的一个全局对象globalThis中,供全局使用。

import Request, { HttpRequestConfig, HttpResponse } from '@yyz116/h_request'
import { Log } from './logutil';
const $u = {http: new Request(),
}
//挂载在ArkTS引擎实例内部的一个全局对象globalThis中,供全局使用
globalThis.$http = $u.http;export const setRequestConfig = () => {globalThis.$http.setConfig((config:HttpRequestConfig) => {config.baseURL = "http://175.178.126.10:8000/api/v1";return config;});// 请求拦截globalThis.$http.interceptors.request.use((config) => {Log.debug('请求拦截')return config},(error) => {return Promise.reject(error)})// 响应拦截globalThis.$http.interceptors.response.use((response:HttpResponse) => {Log.debug('响应拦截')if (response.data.code == 401) {// 提示重新登录console.log('请登录')setTimeout(() => {console.log('请请登录')}, 1000);}return response},(error) => {return Promise.reject(error)})
}

接下来就是写接口啦,以下示例一个是get接口使用,一个是post接口使用,且带post的数据。

import { setRequestConfig } from '../../utils/http';
import { BaseResponse,SwiperData,HotMovieReq,MovieRespData } from '../bean/ApiTypes';// 调用setRequestConfig函数进行请求配置
setRequestConfig();const http = globalThis.$http;// 获取轮播图api接口
export const getSwiperList = (): Promise<BaseResponse<SwiperData>> => http.get('/swiperdata');// 获取热门影视接口
export const getHotMovie = (req:HotMovieReq): Promise<BaseResponse<MovieRespData>> => http.post('/hotmovie',req);

 如果get的接口,带参数呢?带参数的话可以这样写:

// 发送get请求,带参数,实际请求为:xxx.xxx/api/v1/musicsearchlrc?id=""&kind=""
http.get('api/v1/musicsearchlrc', {params:{id:"543656129",kind:"wy"}}).then((res:HttpResponse<Result>) => {hilog.debug(0x0000,"request",res.data.message)hilog.debug(0x0000,"request","res.data.code:%{public}d",res.data.code)}).catch((err:HttpResponse<Error>) => {hilog.debug(0x0000,"request","err.data.code:%d",err.data.code)hilog.debug(0x0000,"request",err.data.message)});})

如何使用

接下来就可以在页面中愉快的使用接口啦,可以看到使用变得十分简单。示例如下:

import {getSwiperList,getHotMovie} from "../common/api/home"
import { hilog } from '@kit.PerformanceAnalysisKit';
import { ErrorResponse } from '../common/bean/ApiTypes';@Entry
@Component
struct Index {@State message: string = 'Hello World';// 只有被@Entry装饰的组件才可以调用页面的生命周期onPageShow() {console.info('Index onPageShow');}// 只有被@Entry装饰的组件才可以调用页面的生命周期onPageHide() {console.info('Index onPageHide');}// 只有被@Entry装饰的组件才可以调用页面的生命周期onBackPress() {console.info('Index onBackPress');}// 组件生命周期aboutToAppear() {console.info('MyComponent aboutToAppear');}// 组件生命周期aboutToDisappear() {console.info('MyComponent aboutToDisappear');}build() {Row() {Column() {Text(this.message).id('HelloWorld').fontSize(50).fontWeight(FontWeight.Bold)Button('test').onClick(() => {console.info('button click');getSwiperList().then((res) => {hilog.debug(0x0000,"request",res.data.message)hilog.debug(0x0000,"request","res.data.code:%{public}d",res.data.code)hilog.debug(0x0000,"request","res.data.data[0]:%{public}s",res.data.data[0].id)hilog.debug(0x0000,"request","res.data.data[0]:%{public}s",res.data.data[0].imageUrl)hilog.debug(0x0000,"request","res.data.data[0]:%{public}s",res.data.data[0].title)}).catch((err:ErrorResponse) => {hilog.debug(0x0000,"request","err.data.code:%d",err.code)hilog.debug(0x0000,"request",err.message)});getHotMovie({start:0,count:1,city:"郑州"}).then((res) => {hilog.debug(0x0000,"request",res.data.message)hilog.debug(0x0000,"request","res.data.code:%{public}d",res.data.code)hilog.debug(0x0000,"request","res.data.data[0]:%{public}s",res.data.data[0].id)hilog.debug(0x0000,"request","res.data.data[0]:%{public}s",res.data.data[0].gener)hilog.debug(0x0000,"request","res.data.data[0]:%{public}s",res.data.data[0].title)}).catch((err:ErrorResponse) => {hilog.debug(0x0000,"request","err.data.code:%d",err.code)hilog.debug(0x0000,"request",err.message)});})}.height('100%').width('100%')}}
}

总结

以上就是笔者封装的鸿蒙开源库h_request的使用介绍。可以看出使用此网络封装库后,在鸿蒙的网络服务开发上,也可以体验到如uniapp小程序开发般的简单易用。分享给有需要的小伙伴,欢迎留言评论并提宝贵意见,最终打造出一个在鸿蒙平台上最简单好用的网络库。

写在最后

最后,推荐下笔者的业余开源app影视项目“爱影家”,推荐分享给与我一样喜欢观影的朋友。

开源地址:爱影家app开源项目介绍及源码

https://gitee.com/yyz116/imovie
http://www.hengruixuexiao.com/news/5340.html

相关文章:

  • .net空网站做九九乘法表武汉排名seo公司
  • 推广型网站制作公司谷歌广告推广
  • 公司做网站的费用提升神马seo关键词自然排名
  • 做百度移动端网站优二次感染即将大爆发
  • 做网站正规公司长沙关键词优化首选
  • 一家企业如何建设自己的网站 下载bt磁力王
  • 500做网站seo公司系统
  • 做批发是国际购物网站有哪些自动点击器免费下载
  • 杭州网站设计网站人民网舆情数据中心官网
  • 百度做网站教程手机怎么制作网站
  • 怎么用wordpress做搜索网站seo优化网站
  • 武昌做网站厦门网站建设公司
  • 好享管家安卓下载太原百度关键词优化
  • 广东网站建设包括什么软件西安百度框架户
  • 南宁网站建设公司哪里网站推广技巧和方法
  • 做网站赚广告费好做吗2024年度关键词
  • 用Python做网站如何配置域名百度问答优化
  • 深圳做微网站株洲seo优化公司
  • 网站建设教育培训谷歌ads
  • 专业的移动网站建设公司吉林网络seo
  • 网站策划书的政策背景微博推广费用
  • 福州做网站公司排名刷百度指数
  • wordpress 多站点 主站点艾滋病多久可以查出来
  • 租房信息网站建设免费永久个人域名注册
  • wordpress友情链接主题seo教程seo教程
  • 北京互联网公司网站建设整站优化多少钱
  • 范例网站怎么做建立自己的网站
  • wordpress链接排序网络推广和信息流优化一样么
  • 网站经常出现502网络服务提供商是指
  • 做网站需要哪些技能太仓seo网站优化软件