OpenHarmony三方组件:retrofit

Handpc
发布于 2023-3-16 18:32
浏览
0收藏

一款用于 OpenHarmony平台的HTTP客户端.

下载安装

npm install @ohos/retrofit --save

OpenHarmony npm环境配置等更多内容,请参考​​如何安装OpenHarmony npm包​

使用说明

创建HTTP请求类

Retrofit parses HTTP Request class and provides method based api calling. 
As shown below, Create Custom HTTP request class like "DataService" Extending "BaseService".
Retrofit supports API declaration with Decorators, for example to make "GET" api call use @GET. Other api's supported are listed under "API Introduction" below.
Use "retrofit" module to import retrofit apis.

// Path注解由于和系统组件Path重名,会导致项目编译失败,所以在引用的时候需要修改Path为UrlPath
import {BaseService,ServiceBuilder,GET,POST,DELETE,PUT,UrlPath,Body,BasePath,Response,Header,Query} from '@ohos/retrofit';

//BasePath - Append "/" to basepath.
@BasePath("/")
    class DataService     extends BaseService{
  
  //GET Api call with Header and Query params
@GET("get?test=arg123")
  async getRequest(@Header("Content-Type") contentType: string,@Query('d1') data1: string,@Query('d2') data2: number): Promise<Response<Data>> { return <Response<Data>>{} };

  //POST Api call with Header and Body info
@POST("post")
  async postRequest(@Header("Content-Type") contentType: string,@Body user: User): Promise<Response<Data>> { return <Response<Data>>{} };

  //PUT Api call with Header and Body info
@PUT("put")
  async putRequest(@Header("Content-Type") contentType: string,@Body user: User): Promise<Response<Data>> { return <Response<Data>>{} };

  //GET Api call with Header, Query and Path Param
@GET("{req}?test=arg123")
  async getRequest2(@Header("Content-Type") contentType: string,@Query('d1') data1: string,@Query('d2') data2: number,@Path("req") requestPath: string): Promise<Response<Data>> { return <Response<Data>>{} };
}

初始化Retrofit 服务和调用方法

Initialize the Retrofit BaseService, Set End point and Call required apis by its method.

const dataService = new ServiceBuilder()
.setEndpoint("https://restapiservice.com")    //Base Url
.build(DataService);

dataService.getRequest("application/json","dat1",8).then((resp)=>{  //Get request with params
console.log("getRequest Response =" + JSON.stringify(resp.result));
}

接口说明

BaseService.ServiceBuilder

接口名

参数

返回值

说明

setEndpoint

endpoint: string

ServiceBuilder

设置基础url

setTimeout

timeout: number

ServiceBuilder

设置请求超时时间

build

service: new (builder: ServiceBuilder) => T

T**

构建retrofit基础服务

BaseService

接口名

参数

返回值

说明

setEndpoint

endpoint: string

void

设置基础url

clone

void

复制基础服务请求

Decorators

接口名

参数

返回值

说明

@GET

void

GET HTTP方法装饰器

@POST

void

POST HTTP方法装饰器

@PUT

void

PUT HTTP方法装饰器

@DELETE

void

DELETE HTTP方法装饰器

@HEAD

void

HEAD HTTP方法装饰器

@OPTIONS

void

OPTIONS HTTP方法装饰器

@BasePath

void

用于追加基本路径的BasePath装饰器

@Path

void

Path装饰器(Path注解由于和系统组件Path重名,会导致项目编译失败,所以在入口文件index.ets里面需要通过Path as UrlPath重命名Path为UrlPath)

@Body

void

用于解析请求体的Body装饰器

@Headers

void

设置请求头的Headers装饰器

@Header

void

设置单个请求头的Header装饰器

@HeaderMap

void

HeaderMap装饰器,用于将Header设置为map对象

@Queries

void

用于设置query列表的装饰器

@Query

void

用于设置query的装饰器

@QueryMap

void

用于在map中设置query的装饰器

@FormUrlEncoded

void

FormUrlEncoded装饰器,用于启用formurlencoding

@Field

void

Field装饰器,用于为post方法设置Field

@FieldMap

void

FieldMap装饰器,用于使用map对象设置Field

@Timeout

void

Timeout装饰器,用于设置请求超时

兼容性

支持OpenHarmony API version 9 版本

目录结构

|---- retrofit
|     |---- entry  # 示例代码文件夹
|     |---- retrofit  # retrofit 库文件夹
|           |---- index.ets  # retrofit对外接口
|     |---- README.MD  # 安装使用方法

贡献代码

使用过程中发现任何问题都可以提​​Issue​​​ 给我们,当然,我们也非常欢迎你给我们提​​PR​​。

开源协议

本项目基于 ​​Apache License 2.0​​,请自由地享受和参与开源。



文章转载自:​​https://gitee.com/openharmony-tpc/retrofit​

分类
retrofit-master.zip 74.3K 0次下载
已于2023-3-16 18:32:33修改
收藏
回复
举报
回复
    相关推荐