///
///
///
///
///
///
///
///
/**
* @description http客户端对象
*
* http客户端对象模拟浏览器环境缓存cookie,并在访问url的时候携带对应的cookie,不同的http客户端对象是相互隔离的,提供http的request、get、post等方法。
* 用法如下:
*
* ```JavaScript
* var http = require('http');
* var httpClient = new http.Client();
* httpClient.request('GET', 'http://fibjs.org');
* ```
*
*/
declare class Class_HttpClient extends Class_object {
/**
* @description HttpClient 构造函数,创建一个新的HttpClient对象
*/
constructor();
/**
* @description 返回http客户端的 HttpCookie 对象列表
*/
readonly cookies: any[];
/**
* @description 查询和设置超时时间 单位毫秒
*/
timeout: number;
/**
* @description cookie 功能开关,默认开启
*/
enableCookie: boolean;
/**
* @description 自动 redirect 功能开关,默认开启
*/
autoRedirect: boolean;
/**
* @description 自动解压缩功能开关,默认开启
*/
enableEncoding: boolean;
/**
* @description 查询和设置 body 最大尺寸,以 MB 为单位,缺省为 -1,不限制尺寸
*/
maxBodySize: number;
/**
* @description 查询和设置 http 请求中的浏览器标识
*/
userAgent: string;
/**
* @description 查询和设置 keep-alive 最大缓存连接数,缺省 128
*/
poolSize: number;
/**
* @description 查询和设置 keep-alive 缓存连接超时时间,缺省 10000 ms
*/
poolTimeout: number;
/**
* @description 查询和设置代理服务器
*/
proxyAgent: string;
/**
* @description 查询和设置连接 https 时的证书验证模式, 参考 ssl 模块的 VERIFY_* 常量, 默认值为 ssl.verification
*/
sslVerification: number;
/**
* @description 设定缺省客户端证书
* @param crt 证书,用于发送给服务器验证客户端
* @param key 私钥,用于与客户端会话
*
*/
setClientCert(crt: Class_X509Cert, key: Class_PKey): void;
/**
* @description 发送 http 请求到指定的流对象,并返回结果
* @param conn 指定处理请求的流对象
* @param req 要发送的 HttpRequest 对象
* @return 返回服务器响应
*
*/
request(conn: Class_Stream, req: Class_HttpRequest): Class_HttpResponse;
request(conn: Class_Stream, req: Class_HttpRequest, callback: (err: Error | undefined | null, retVal: Class_HttpResponse)=>any): void;
/**
* @description 发送 http 请求到指定的流对象,并返回结果
* @param conn 指定处理请求的流对象
* @param req 要发送的 HttpRequest 对象
* @param response_body 指定 response.body 的流
* @return 返回服务器响应
*
*/
request(conn: Class_Stream, req: Class_HttpRequest, response_body: Class_SeekableStream): Class_HttpResponse;
request(conn: Class_Stream, req: Class_HttpRequest, response_body: Class_SeekableStream, callback: (err: Error | undefined | null, retVal: Class_HttpResponse)=>any): void;
/**
* @description 请求指定的 url,并返回结果
* opts 包含请求的附加选项,支持的内容如下:
* ```JavaScript
* {
* "query": {},
* "body": SeekableStream | Buffer | String | {},
* "json": {},
* "pack": {},
* "headers": {},
* "response_body": SeekableStream // 指定接受 resposne 数据的流
* }
* ```
* 其中 body,json,pack 不得同时出现。缺省为 {},不包含任何附加信息
* @param method 指定 http 请求方法:GET, POST 等
* @param url 指定 url,必须是包含主机的完整 url
* @param opts 指定附加信息
* @return 返回服务器响应
*
*/
request(method: string, url: string, opts?: FIBJS.GeneralObject): Class_HttpResponse;
request(method: string, url: string, opts?: FIBJS.GeneralObject, callback?: (err: Error | undefined | null, retVal: Class_HttpResponse)=>any): void;
/**
* @description 用 GET 方法请求指定的 url,并返回结果,等同于 request("GET", ...)
* opts 包含请求的附加选项,支持的内容如下:
* ```JavaScript
* {
* "query": {},
* "body": SeekableStream | Buffer | String | {},
* "json": {},
* "pack": {},
* "headers": {}
* }
* ```
* 其中 body,json,pack 不得同时出现。缺省为 {},不包含任何附加信息
* @param url 指定 url,必须是包含主机的完整 url
* @param opts 指定附加信息
* @return 返回服务器响应
*
*/
get(url: string, opts?: FIBJS.GeneralObject): Class_HttpResponse;
get(url: string, opts?: FIBJS.GeneralObject, callback?: (err: Error | undefined | null, retVal: Class_HttpResponse)=>any): void;
/**
* @description 用 POST 方法请求指定的 url,并返回结果,等同于 request("POST", ...)
* opts 包含请求的附加选项,支持的内容如下:
* ```JavaScript
* {
* "query": {},
* "body": SeekableStream | Buffer | String | {},
* "json": {},
* "pack": {},
* "headers": {}
* }
* ```
* 其中 body,json,pack 不得同时出现。缺省为 {},不包含任何附加信息
* @param url 指定 url,必须是包含主机的完整 url
* @param opts 指定附加信息
* @return 返回服务器响应
*
*/
post(url: string, opts?: FIBJS.GeneralObject): Class_HttpResponse;
post(url: string, opts?: FIBJS.GeneralObject, callback?: (err: Error | undefined | null, retVal: Class_HttpResponse)=>any): void;
/**
* @description 用 DELETE 方法请求指定的 url,并返回结果,等同于 request("DELETE", ...)
* opts 包含请求的附加选项,支持的内容如下:
* ```JavaScript
* {
* "query": {},
* "body": SeekableStream | Buffer | String | {},
* "json": {},
* "pack": {},
* "headers": {}
* }
* ```
* 其中 body,json,pack 不得同时出现。缺省为 {},不包含任何附加信息
* @param url 指定 url,必须是包含主机的完整 url
* @param opts 指定附加信息
* @return 返回服务器响应
*
*/
del(url: string, opts?: FIBJS.GeneralObject): Class_HttpResponse;
del(url: string, opts?: FIBJS.GeneralObject, callback?: (err: Error | undefined | null, retVal: Class_HttpResponse)=>any): void;
/**
* @description 用 PUT 方法请求指定的 url,并返回结果,等同于 request("PUT", ...)
* opts 包含请求的附加选项,支持的内容如下:
* ```JavaScript
* {
* "query": {},
* "body": SeekableStream | Buffer | String | {},
* "json": {},
* "pack": {},
* "headers": {}
* }
* ```
* 其中 body,json,pack 不得同时出现。缺省为 {},不包含任何附加信息
* @param url 指定 url,必须是包含主机的完整 url
* @param opts 指定附加信息
* @return 返回服务器响应
*
*/
put(url: string, opts?: FIBJS.GeneralObject): Class_HttpResponse;
put(url: string, opts?: FIBJS.GeneralObject, callback?: (err: Error | undefined | null, retVal: Class_HttpResponse)=>any): void;
/**
* @description 用 PATCH 方法请求指定的 url,并返回结果,等同于 request("PATCH", ...)
* opts 包含请求的附加选项,支持的内容如下:
* ```JavaScript
* {
* "query": {},
* "body": SeekableStream | Buffer | String | {},
* "json": {},
* "pack": {},
* "headers": {}
* }
* ```
* 其中 body,json,pack 不得同时出现。缺省为 {},不包含任何附加信息
* @param url 指定 url,必须是包含主机的完整 url
* @param opts 指定附加信息
* @return 返回服务器响应
*
*/
patch(url: string, opts?: FIBJS.GeneralObject): Class_HttpResponse;
patch(url: string, opts?: FIBJS.GeneralObject, callback?: (err: Error | undefined | null, retVal: Class_HttpResponse)=>any): void;
}