# lark **Repository Path**: hlc8902/lark ## Basic Information - **Project Name**: lark - **Description**: lark是一个基于Promise的网络请求库,使用Harmony官方提供的一个用于进行HTTP通信的基础模块。 支持拦截请求与响应。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2024-10-21 - **Last Updated**: 2024-10-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## lark + lark是一个基于Promise的网络请求库,使用Harmony官方提供的一个用于进行HTTP通信的基础模块。 + 支持拦截请求与响应。 ### 安装 ```ts ohpm install @vento/lark ``` ### 使用 #### 1.导入使用 ``` ts import lark from '@vento/lark/lark'; Import { LarkRequestConfig, LarkResponse } from '@vento/lark/lark'; ``` #### 2.接口请求配置对象LarkRequestConfig ```ts const config:LarkRequestConfig = { baseURL:'', //是在发起请求时用作请求地址的前缀 url:'', // method:'GET', headers:{}, //头部信息 readTimeout:6000, //读取数据超时时间(毫秒,默认为6000毫秒) connectTimeOut:6000, //连接超时时间(毫秒,默认为6000毫秒) extraData:Object({}), //post请求时对应发送请求的content params:Object({}), //参数会被传递到URL的查询字符串中,类似于GET请求的查询参数 expectDataType:'STRING', //返回数据类型 usingCache:true, //是否使用缓存,默认为true,请求时优先读取缓存。 priority:1, //http/https请求并发优先级,值越大优先级越高,范围[1,1000],默认为1。 multiFormDataList:[{ //上传Post Multipart表单,multipart/form-data方法时需要使用该字段,数组为 contentType:'', //必填字段 name:'', //必填字段 remoteFileName:'', //可选字段 data:'',//string | Object | ArrayBuffer; //可选 filePath:'' //可选 }] }; ``` #### 3.接口请求返回数据类型(LarkResponse) LarkResponse是长这样 ```ts { responseCode?: number; //状态 result?: string | Object | ArrayBuffer; //返回最终数据,返回类型由LarkRequestConfig中的expectDataType决定,当该类型设置完成后,系统会优先返回对应该类型 header?: Object; cookies?: string; } ``` #### 4.进行网络请求,下面是网络请求具体例子 GET请求的实现方法: ```ts //config参数可以不传,method参数也可以不传 lark.get('https://jsonplaceholder.typicode.com/posts',config).then((response)=>{ //对response内数据进行处理 }, (error:Error)=>{ //网络请求错误 }); ``` #### POST请求 const config:LarkRequestConfig = { baseURL:'https://jsonplaceholder.typicode.com/posts', //是在发起请求时用作请求地址的前缀 url:'/1', // method:'POST', headers:{ 'Content-type': 'application/json; charset=UTF-8', }, readTimeout:3000, connectTimeOut:3000, extraData:Object({ 'title': 'foo', 'body': 'bar', 'userId': 1, }), parmas:Object({ 'key':'value', }) expectDataType:'STRING', }; lark.post('',config).then((response)=>{ //对response内数据进行处理 }, (error:Error)=>{ //网络请求错误 }); 当parmas中不为空时,将会在请求时将params中的key:value转换为&key=value的形式拼接在url后面 ``` #### 提交表单时('Content-Type': 'multipart/form-data') const config:LarkRequestConfig = { baseURL:'https://jsonplaceholder.typicode.com/posts', //是在发起请求时用作请求地址的前缀 url:'/1', // method:'POST', headers:{ 'Content-Type': 'multipart/form-data', }, readTimeout:3000, connectTimeOut:3000, extraData:Object({ 'title': 'foo', 'body': 'bar', 'userId': 1, }), expectDataType:'STRING', multiFormDataList:[{ //上传Post Multipart表单,multipart/form-data方法时需要使用该字段,数组为 contentType:'text/plain', //数据类型 name:'part', //必填字段 remoteFileName:'', //文件名字 data:'',//string | Object | ArrayBuffer; (数据) filePath:'fileName.txt' //文件路径 }] }; lark.post('',config).then((response)=>{ //对response内数据进行处理 }, (error:Error)=>{ //网络请求错误 }); ```