| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 | type AnyObject = Record<string | number | symbol, any>type HttpPromise<T> = Promise<HttpResponse<T>>;type Tasks = UniApp.RequestTask | UniApp.UploadTask | UniApp.DownloadTaskexport interface RequestTask {    abort: () => void;    offHeadersReceived: () => void;    onHeadersReceived: () => void;}export interface HttpRequestConfig<T = Tasks> {    /** 请求基地址 */    baseURL?: string;    /** 请求服务器接口地址 */    url?: string;    /** 请求查询参数,自动拼接为查询字符串 */    params?: AnyObject;    /** 请求体参数 */    data?: AnyObject;    /** 文件对应的 key */    name?: string;    /** HTTP 请求中其他额外的 form data */    formData?: AnyObject;    /** 要上传文件资源的路径。 */    filePath?: string;    /** 需要上传的文件列表。使用 files 时,filePath 和 name 不生效,App、H5( 2.6.15+) */    files?: Array<{        name?: string;        file?: File;        uri: string;    }>;    /** 要上传的文件对象,仅H5(2.6.15+)支持 */    file?: File;    /** 请求头信息 */    header?: AnyObject;    /** 请求方式 */    method?: "GET" | "POST" | "PUT" | "DELETE" | "CONNECT" | "HEAD" | "OPTIONS" | "TRACE" | "UPLOAD" | "DOWNLOAD";    /** 如果设为 json,会尝试对返回的数据做一次 JSON.parse */    dataType?: string;    /** 设置响应的数据类型,支付宝小程序不支持 */    responseType?: "text" | "arraybuffer";    /** 自定义参数 */    custom?: AnyObject;    /** 超时时间,仅微信小程序(2.10.0)、支付宝小程序支持 */    timeout?: number;    /** DNS解析时优先使用ipv4,仅 App-Android 支持 (HBuilderX 2.8.0+) */    firstIpv4?: boolean;    /** 验证 ssl 证书 仅5+App安卓端支持(HBuilderX 2.3.3+) */    sslVerify?: boolean;    /** 跨域请求时是否携带凭证(cookies)仅H5支持(HBuilderX 2.6.15+) */    withCredentials?: boolean;    /** 返回当前请求的task, options。请勿在此处修改options。 */    getTask?: (task: T, options: HttpRequestConfig<T>) => void;    /**  全局自定义验证器 */    validateStatus?: (statusCode: number) => boolean | void;}export interface HttpResponse<T = any> {    config: HttpRequestConfig;    statusCode: number;    cookies: Array<string>;    data: T;    errMsg: string;    header: AnyObject;}export interface HttpUploadResponse<T = any> {    config: HttpRequestConfig;    statusCode: number;    data: T;    errMsg: string;}export interface HttpDownloadResponse extends HttpResponse {    tempFilePath: string;}export interface HttpError {    config: HttpRequestConfig;    statusCode?: number;    cookies?: Array<string>;    data?: any;    errMsg: string;    header?: AnyObject;}export interface HttpInterceptorManager<V, E = V> {    use(        onFulfilled?: (config: V) => Promise<V> | V,        onRejected?: (config: E) => Promise<E> | E    ): void;    eject(id: number): void;}export abstract class HttpRequestAbstract {    constructor(config?: HttpRequestConfig);    config: HttpRequestConfig;    interceptors: {        request: HttpInterceptorManager<HttpRequestConfig, HttpRequestConfig>;        response: HttpInterceptorManager<HttpResponse, HttpError>;    }    middleware<T = any>(config: HttpRequestConfig): HttpPromise<T>;    request<T = any>(config: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;    get<T = any>(url: string, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;    upload<T = any>(url: string, config?: HttpRequestConfig<UniApp.UploadTask>): HttpPromise<T>;    delete<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;    head<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;    post<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;    put<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;    connect<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;    options<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;    trace<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;    download(url: string, config?: HttpRequestConfig<UniApp.DownloadTask>): Promise<HttpDownloadResponse>;    setConfig(onSend: (config: HttpRequestConfig) => HttpRequestConfig): void;}declare class HttpRequest extends HttpRequestAbstract {}export default HttpRequest;
 |