aardio 文档

web.rest.client 库模块帮助文档

web.rest 成员列表

web.rest.client

REST客户端

创建 REST 客户端。

web.rest.client("UserAgent","代理服务器","绕过代理的主机",连接选项)

创建 REST 客户端,所有参数可选。
UserAgent 用于自定义 User-Agent 请求标头,用于服务器识别请求程序特征。
HTTP 代理服务器请指定为 "代理服务器地址:端口" 格式,

SOCKS 代理服务器请指定为 "socks=代理服务器地址:端口" 格式
└── 代理格式说明

"绕过代理的主机" 用法参考 inet.setProxy 源码的示例,一般不需要指定。
连接选项可用一个数值参数指定打开会话的选项,一般不需要指定。

web.rest.client()

返回对象:webRestClientObject

webRestApiObject 成员列表

webRestApiObject.?

可输入任意 HTTP API 资源名
返回一个 HTTP API 调用对象,
返回对象可以使用成员操作符继续获取下级资源,
也可以作为函数直接调用并发送请求,
作为函数使用时,
可选用参数@1指定请求数据参表,也可直接指定请求字符串,
可选用参数@2指定URL参数表,
可选用参数 @2 或 @3 指定 inet.http对象的 onReceive 回调函数。
指定 onReceive 回调函数则自动支持自动解析 SSE 流,兼容 ndjson 流。
作为函数调用时成功返回解析后数据,失败返回 null,错误信息,错误代码

返回对象:webRestApiObject

webRestApiObject.delete()

DELETE方法提交请求,删除资源,
请求参数@1可以指定表或字符串、缓冲区,如果是表请求前会转换为字符串
可选用参数@2指定URL参数表,
可选用参数@3指定inet.http对象的onReceive回调函数
如果资源URL名称需要用到 delete,请使用["/delete"]替代以避免被识别为默认HTTP方法

webRestApiObject.deleteDelete()

返回 HTTP API 调用对象,
URL 资源名称与 HTTP 请求方法都设为 "get"
这是 delete["/delete"] 的缩略写法

返回对象:webRestApiObject

webRestApiObject.get()

GET方法提交请求,获取资源,
请求参数@1可以指定表或字符串、缓冲区,如果是表请求前会转换为字符串
如果资源URL名称需要用到 get,请使用["/get"]替代以避免被识别为默认HTTP方法

webRestApiObject.getGet()

返回 HTTP API 调用对象,
URL 资源名称与 HTTP 请求方法都设为 "get"
这是 get["/get"] 的缩略写法

返回对象:webRestApiObject

webRestApiObject.getUrl()

返回当前对象发送请求使用的 URL 地址,
如果有远程函数与此函数同名,写为 ["/getUrl"] 即可

webRestApiObject.head()

HEAD方法提交请求
如果该函数返回非null值为成功,请使用lastResponseHeaders获取应答HTTP头
请求参数可以指定表或字符串,如果是表请求前会转换为字符串

webRestApiObject.headHead()

返回 HTTP API 调用对象,
URL 资源名称与 HTTP 请求方法都设为 "get"
这是 head["/head"] 的缩略写法

返回对象:webRestApiObject

webRestApiObject.patch()

PATCH方法提交请求,更新资源,
请求参数@1可以指定表或字符串、缓冲区,如果是表请求前会转换为字符串
可选用参数@2指定URL参数表,
可选用参数@3指定inet.http对象的onReceive回调函数

webRestApiObject.patchPatch()

返回 HTTP API 调用对象,
URL 资源名称与 HTTP 请求方法都设为 "get"
这是 patch["/patch"] 的缩略写法

返回对象:webRestApiObject

webRestApiObject.post()

POST方法提交请求,新增或修改资源,
请求参数@1可以指定表或字符串、缓冲区,如果是表请求前会转换为字符串
可选用参数@2指定URL参数表,
可选用参数@3指定inet.http对象的onReceive回调函数

webRestApiObject.postPost()

返回 HTTP API 调用对象,
URL 资源名称与 HTTP 请求方法都设为 "get"
这是 post["/post"] 的缩略写法

返回对象:webRestApiObject

webRestApiObject.put()

PUT方法提交请求,替换或更新资源,
请求参数@1可以指定表或字符串、缓冲区,如果是表请求前会转换为字符串
可选用参数@2指定URL参数表,
可选用参数@3指定inet.http对象的onReceive回调函数

webRestApiObject.putPut()

返回 HTTP API 调用对象,
URL 资源名称与 HTTP 请求方法都设为 "get"
这是 put["/put"] 的缩略写法

返回对象:webRestApiObject

webRestApiObject.receiveFile

配置下次下载文件的参数,
此配置在后续用 get,post 等函数提交请求后自动清空

此函数成功返回对象自身,创建文件失败返回 null,错误信息

webRestApiObject.receiveFile()

返回对象:webRestApiObject

webRestApiObject.receiveFile(savePath,callback,saveDir)

配置下次下载文件的参数,
此配置在后续用 get,post 等函数提交请求后自动清空
此函数返回对象自身

@savePath 参数指定下载文件路径,
可选用 @saveDir 指定下载根目录,指定此参数则参数 @1 应为相对路径。
可选用 @callback 参数指定下载进度回调函数,
进度回调函数参数依次为 recvData,recvSize,contentLength,
其中 recvData 为本次下载的数据,
recvSize 为本次下载的字节数,
contentLength 为需要下载的总字节数

webRestApiObject.sendFile("上传文件路径",进度回调函数,MIME,分块大小)

webRestApiObject.sendFile( "上传文件路径"   
    ,function(sendData,sendSize,contentLength,remainSize){  
        /*上传进度回调函数以及其他参数都可以省略,  
如果打开文件失败,sendFile 函数返回 null 与错误信息,  
否则返回响应数据*/  
    }  
);

webRestApiObject.sendMultipartForm(上传字段表,进度回调函数,分块大小)

webRestApiObject.sendMultipartForm( {  
        file = "@/*上传文件路径字前必须添加@字符,  
上传表单可添加多个字段,  
上传进度回调函数以及其他参数都可以省略*/"  
    },function(sendData,sendSize,contentLength,remainSize){  
        ..io.print("正在上传",sendSize,contentLength);  
    }  
);

webRestClientObject 成员列表

webRestClientObject.?

web.rest.client 或继承自 web.rest.client 的对象的其他成员函数或属性。
请查看相关库函数文档或源码

webRestClientObject._http

inet.http客户端,用于执行http请求

返回对象:inetHttpObject

webRestClientObject.acceptType

期望返回的MIME内容类型,多个类型用逗号分隔

webRestClientObject.addHeaders

替换所有请求默认添加的HTTP头
请求结束时不会清空此属性
该值可以是一个字符串,也可以是键值对组成的table对象

webRestClientObject.afterSend

webRestClientObject.afterSend = function(statusCode,contentLength){
    /*向服务器发送数据结束触发此回调函数*/ 
}

webRestClientObject.afterStringifyRequestParameters(提交参数,代码页)

webRestClientObject.afterStringifyRequestParameters = function(params,codepage){
    /*此时参数已转换为字符串并准备提交到服务器*/
    return params; 
}

webRestClientObject.api

定义API对象,使用成员操作符或下标获取API对象的成员时将会自动转换为新的API对象

webRestClientObject.api("网址模板","HTTP动词","模式串")

网址模板可使用 {name}、{/name}、或 {...} 指定模板参数,
大括号内的参数名可使用英文字符或数字,
模板参数名首字符为斜杠(例如{/name})表示使用实参替换后保留斜杠,
{...} 表示不定个数的模板参数,如使用多个实参替换则自动使用斜杠拼接,
默认在网址模板尾部自动添加 {...}

返回API对象使用下标指定模板实参,
如果下标是字符串,按下标出现的前后顺序替换模板参数,
如果下标是表对象,则表中的键值对用于替换与键同名的模板参数,

可选用参数@2指定HTTP动词,默认值为"POST"

参数@3如果为模式串,则使用模式匹配转换响应数据并返回。
参数@3如果为函数,则调用该函数转换转换响应数据并返回。
参数@3如果为数组,则作为string.map的模式参数@2转换响应数据并返回

webRestClientObject.api("网址模板","HTTP动词","模式串",HTTP选项)

可选在参数@4用 INTERNET_FLAG 前缀常量自定义http请求选项
其他参数用法同上

webRestClientObject.api()

返回对象:webRestApiObject

webRestClientObject.beforeRequestHeaders(提交参数)

webRestClientObject.beforeRequestHeaders = function(params){
    /*每次请求前触发此函数,  
params参数为本次请求的提交参数,  
可选返回字符串、数组、键值等web.joinHeaders函数支持的HTTP头  
*/
    return {}; 
}

webRestClientObject.beforeSend

webRestClientObject.beforeSend = function(){
    /*已准备向服务器发送数据触发此回调函数*/ 
}

webRestClientObject.beforeStringifyRequestParameters(提交参数,代码页)

webRestClientObject.beforeStringifyRequestParameters = function(params,codepage){
    /*可以在该函数中修改提交提交参数表,或在此添加默认参数  
此函数在stringifyRequestParameters之前调用  
参数可能是字符串或者表*/
    return params; 
}

webRestClientObject.charset

指定服务端使用的编码,默认为"UTF-8",
服务端HTTP响应头里如果显式指定了编码,会自动修改此属性
对于服务端返回的数据,会根据charset自动转换为aardio默认的UTF8编码
对于请求参数,如果使用JSON编码统一转换为Unicode编码格式,不需要考虑编码转换,
如果使用UrlEncode编码与浏览器的规则一致,根据charset转换为对应编码后提交,
开发服务端接口应统一使用UTF8编码,可避免任何乱码问题

webRestClientObject.checkResponseResult(result)

webRestClientObject.checkResponseResult = function(result){
    if(result[["errcode"]]==40014){
        var lastRequestInfo = http.lastRequestInfo;
        /*此函数在成功解析服务器响数数据后调用  
可在此函数中检查token是否过期并重新发送请求*/
        return http.requestEx(lastRequestInfo);
    }

    return result;
}

webRestClientObject.close()

关闭对象释放资源

webRestClientObject.contentType

写入HTTP头ContentType属性的内容类型
设为null空值,或每次请求完成将自动重置为defaultContentType

webRestClientObject.defaultContentType

默认内容类型

webRestClientObject.defaultUrlTemplate

默认API网址模板

webRestClientObject.delete(网址,参数表)

使用该DELETE方法提交请求,删除资源
请求参数可以指定表或字符串,如果是表请求前会转换为字符串
成功返回数据,失败返回空值,错误信息,错误代码

webRestClientObject.encodeKey

自定义替换 API 网址变量值使用的编码函数,
此函数接收一个资源名参数,返回编码后的资源名,
必须在定义 API 对象之前指定,
默认已指定为 inet.url.encodeMbcs 函数

webRestClientObject.endRequest()

可用于afterSend事件提前结束当前请求

webRestClientObject.extraParameters

指定附加到所有请求参数中的默认参数
该值应当是一个表,请求参数指定表对象时或为null才会附加extraParameters

webRestClientObject.extraUrlParameters

指定附加到所有请求 URL 的默认参数。
该值可以是一个表或字符串。
表参数使用 inet.url.stringifyParameters 转换为字符串。
表中的值如果是函数则每次请求都调用该函数取值

webRestClientObject.get(网址,参数表)

使用该GET方法提交请求,获取资源
请求参数将会自动转换为URL附加参数,
请求参数可以指定表或字符串,如果是表请求前会转换为字符串
成功返回数据,失败返回空值,错误信息,错误代码

webRestClientObject.get(网址,参数表,接收数据回调函数)

使用该GET方法提交请求,获取资源
请求参数将会自动转换为URL附加参数,
请求参数可以指定表或字符串,如果是表请求前会转换为字符串
如果服务端返回内容类型为 text/event-stream,
则接收数据回调函数的参数为解析服务端每次推送数据的表对象,
否则回调参数依次为:当前响应数据,本次响应数据长度,响应数据总长度

webRestClientObject.getUserAgent()

返回HTTP客户端请求HTTP头中用户代理头的值,
该值可在创建HTTP客户端的构造参数中指定

webRestClientObject.head(网址,参数表)

使用 HEAD 方法提交请求
如果该函数返回非 null 值为成功,请使用 lastResponseHeaders 获取应答HTTP头。
成功返回 true,失败返回 null,错误信息,错误代码

webRestClientObject.headGet(网址,参数表)

使用 GET 方法提交请求,但仅获取 HTTP 头。
如果该函数返回非 null 值为成功,请使用 lastResponseHeaders 获取应答HTTP头
成功返回数据,失败返回空值,错误信息,错误代码

webRestClientObject.headPost(网址,参数表)

使用 POST 方法提交请求,但仅获取 HTTP 头。
如果该函数返回非 null 值为成功,请使用 lastResponseHeaders 获取应答HTTP头
成功返回数据,失败返回空值,错误信息,错误代码

webRestClientObject.lastRequestInfo

最后一次请示使用的所有参数信息

webRestClientObject.lastRequestMethod

最后一次请示使用的HTTP方法

webRestClientObject.lastRequestUrl

获取最后一次请求的URL

webRestClientObject.lastResponse()

获取最后一次服务器返回的数据,
如果控制台已打开或在开发环境中导入 console 库则在控制台输出数据
下载文件时该值为空

webRestClientObject.lastResponseContentType

服务器响应头 Content-Type 的值

webRestClientObject.lastResponseError()

返回服务器最后一次返回的错误响应,并转换为错误对象。
与调用 API 时转换响应数据一样,支持相同的服务器响应格式 。
如果错误来自本地(lastStatusCode 属性为 null)则此函数返回 null 。
如果最后一次发生请求成功,则此函数返回 null 。

如果在参数 @1 中指定返回字段,且错误对象包含该字段则使用直接下标获取并返回字段值。
获取字段失败返回 null 而非抛出异常

webRestClientObject.lastResponseHeaderList("字符串参数")

获取所有指定字符串作为开始段的 HTTP 头。
忽略大小写,不忽略冒号以后部分。
不指定参数则读取全部响应头。
返回键值对组成的表对象,键名转为小写,每个值都是一个数组。
如果调用 head, headGet, headPost 等函数。
或调用 或 API 对象的 head.get,head.post 等函数,
则在请求成功后可调用此函数读取 HTTP 头

webRestClientObject.lastResponseHeaders

获取返回的 HTTP 响应头

webRestClientObject.lastResponseHeaders("Content-Length:")

获取单个指定的 HTTP 服务器响应头,返回字符串。
参数指定HTTP头名字或部分名字,忽略大小写,忽略冒号以后部分。
如果调用 head, headGet, headPost 等函数。
或调用 或 API 对象的 head.get,head.post 等函数,
则在请求成功后可调用此函数读取 HTTP 头

webRestClientObject.lastResponseHeaders()

获取返回的 HTTP 响应头。
如果调用 head, headGet, headPost 等函数。
或调用 或 API 对象的 head.get,head.post 等函数,
则在请求成功后可调用此函数读取 HTTP 头

webRestClientObject.lastResponseString()

获取最后一次服务器返回的原始数据,
请求失败,或者下载文件时此属性值为空

webRestClientObject.lastStatusCode

获取最近一次请求返回的HTTP状态码
100 ~ 101 为信息提示
200 ~ 206 表示请求成功
300 ~ 305 表示重定向
400 ~ 415 表求客户端请求出错
500 ~ 505 表示服务端错误

webRestClientObject.lastStatusMessage()

获取最近返回的HTTP状态码文本描述
第二个返回值为状态码

webRestClientObject.notify(回调函数)

webRestClientObject.notify(  
    function(){  
        /*在此回调函数中所有请求在发送数据后立即关闭连接*/  
    }   
)

webRestClientObject.ok()

最后一次请求是否成功
服务器应答并且状态码为2XX该函数返回真

webRestClientObject.onAuthenticate

function(authHeader){ __/*请求遇到401错误触发此函数,
authHeader为服务器响应HTT头WWW-Authenticate的值
登录成功请返回true以重新发送上次失败的请求*/ }

webRestClientObject.parseResponseResult(响应数据,单个流式数据块)

webRestClientObject.parseResponseResult = function(resp,streamChunk){
    /*用于解析服务器应答数据。  
此函数一般由库文件定义,一般调用不应修改此函数。  
resp 为服务器应答字符串,  
streamChunk 指示是否在 SSE 或 ndjson 流回调函数中解析单个块*/
    return resp;
}

webRestClientObject.patch(网址,参数表)

使用该PATCH方法提交请求,更新资源
请求参数可以指定表或字符串,如果是表请求前会转换为字符串
成功返回数据,失败返回空值,错误信息,错误代码

webRestClientObject.post(网址,参数表)

使用该POST方法提交请求,新增或修改资源
请求参数可以指定表或字符串,如果是表请求前会转换为字符串
成功返回数据,失败返回空值,错误信息,错误代码

webRestClientObject.post(网址,参数表,接收数据回调函数)

使用该POST方法提交请求,新增或修改资源
请求参数可以指定表或字符串,如果是表请求前会转换为字符串

如果服务端返回内容类型为 text/event-stream,
则接收数据回调函数的参数为解析服务端每次推送数据的表对象,
否则回调参数依次为:当前响应数据,本次响应数据长度,响应数据总长度

webRestClientObject.put(网址,参数表)

使用该PUT方法提交请求,替换或更新资源
请求参数可以指定表或字符串,如果是表请求前会转换为字符串
成功返回数据,失败返回空值,错误信息,错误代码

webRestClientObject.receiveFile

配置下次下载文件的参数,
此配置在后续用 get,post 等函数提交请求后自动清空

此函数成功返回对象自身,创建文件失败返回 null,错误信息

webRestClientObject.receiveFile()

返回对象:webRestClientObject

webRestClientObject.receiveFile(savePath,callback,saveDir)

配置下次下载文件的参数,
此配置在后续用 get,post 等函数提交请求后自动清空
此函数成功则返回对象自身

@savePath 参数指定下载文件路径,
可选用 @saveDir 指定下载根目录,指定此参数则参数 @1 应为相对路径。

webRestClientObject.referer

引用页地址
如果此属性指定了一个值,则每次请求都会使用该引用页
如果不指定,每次请求都会自动设置上次请求的网址为引用页
这个属性不像inet.http对象的referer属性那样每次请求结束都会清空

webRestClientObject.request

发送请求,
该函数不会解析URL中的模板参数

webRestClientObject.request(网址,参数表,"HTTP动词",URL参数表)

除参数@1以外,其他所有参数都可以省略,
省略参数@3则使用默认的调用方法
成功返回数据,失败返回空值,错误信息,错误代码

webRestClientObject.requestEx(lastRequstInfo)

用于重新发送请求,
参数必须指定当前对象的lastRequestInfo属性

webRestClientObject.sendFile("上传文件路径",进度回调函数)

webRestClientObject.sendFile( "上传文件路径"   
    ,function(sendData,sendSize,contentLength,remainSize){  
        /*上传进度回调函数以及其他参数都可以省略,  
如果打开文件失败,sendFile 函数返回 null 与错误信息,  
否则返回响应数据*/  
    }  
);

webRestClientObject.sendFile()

返回对象:webRestClientObject

webRestClientObject.sendMultipartForm()

返回对象:webRestClientObject

webRestClientObject.sendMultipartForm(上传字段表,进度回调函数)

webRestClientObject.sendMultipartForm( {  
        file = "@/*上传文件路径字前必须添加@字符,  
上传表单可添加多个字段,  
上传进度回调函数以及其他参数都可以省略*/"  
    },function(sendData,sendSize,contentLength,remainSize){  

    }  
);

webRestClientObject.setAuth

设置登录名,密码,或者设置 API Key 与 Secret Key

webRestClientObject.setAuth("API Key","Secret Key")

设置 API Key,Secret Key。
此函数会清空 setAuthToken 设置的认证令牌(token)

webRestClientObject.setAuth("登录名","密码")

设置登录名,密码,
默认用于HTTP登录认证
,
支持 Basic , Digest 认证

此函数会清空 setAuthToken 设置的认证令牌(token)

webRestClientObject.setAuthToken

设置认证令牌(token)

webRestClientObject.setAuthToken(token,tokenType)

设置认证令牌(token)。
@token 可指定令牌,也可以指定返回令牌的网址。
@tokenType 为可选参数,默认为"Bearer"。
如果指定了令牌,则会添加请求头 "Authorization:Bearer 令牌"。
@tokenType 也可以指定为空字符串。

此函数会清空 setAuth 设置的用户名与密码

webRestClientObject.setCookie

调用 inet.setCookie 设置 Cookies 。
web.rest,inet.http,web.form 等共享 Cookies 设置。

此函数用法与 inet.setCookie 函数完全相同。
这里仅列出几种常用的参数用法,
其他用法请查看 inet.setCookie 函数说明

webRestClientObject.setCookie("网址","值","键",过期时间或天数)

设定指定网址的 Cookie。
第一个参数指定 Cookie 生效的网址。
如果不指定值则删除删除指定名字的会话 cookie 与持久 Cookie,
如果指定名字与值则设置 Cookie,如果不指定过期时间则仅设置会话 Cookie,
否则设置为持久 Cookie。
可选参数 @4 使用 time 对象指定过期时间,或用数值指定过期天数

webRestClientObject.setCookie(webView)

传入 web.view 可直接获取浏览器控件的 Cookies
作为 inet.setCookie 的参数,设置为 inet.http 可用的 Cookies 。
web.form,web.rest,inet.http 共享此 Cookies 设置

webRestClientObject.setHeaders

设置所有请求默认添加的HTTP头

webRestClientObject.setHeaders(headers)

参数 @headers 必须指定一个表中,
用该表中的键值对更新 addHeaders 属性中的键值
如果addHeaders的原属性值不是一个表,则先清空该属性

webRestClientObject.strictParsing

对于 JSON 客户端,如果此属性设为 true:
且服务器响应头未声明 JSON 类型,返回数据第一个字符不是 { 也不是 [,
则直接返回包含服务器响应数据的字符串。

此属性值默认为 null

webRestClientObject.stringifyRequestParameters(提交参数表,代码页)

webRestClientObject.stringifyRequestParameters = function(params,codepage){
    /*参数是表对象时调用此函数转换为字符串  
此函数一般由库文件定义,一般调用不应修改此函数  
注意返回的文本格式应与 owner.contentType 一致  
在该函数中可获取或修改对象的 lastRequestUrl, lastRequestMethod 属性*/
    return params;
}

Markdown 格式