import { HttpErrorResponse } from '@angular/common/http'; import { Observable } from 'rxjs'; import { HttpMethod } from "./http-method"; import { HttpContentType } from "./http-content-type"; import { Ioc } from '../common/ioc'; /** * Http请求操作 */ export declare class HttpRequest { private ioc; private httpMethod; private url; private body?; /** * Http头集合 */ private headers; /** * 内容类型 */ private httpContentType; /** * 请求客户端 */ private _client; /** * Http参数集合 */ private parameters; /** * 响应类型 */ private httpResponseType; /** * 跨域是否允许携带cookie */ private credentials; /** * 请求重试次数 */ private retryTimes; /** * 初始化Http请求操作 * @param ioc Ioc操作 * @param httpMethod Http方法 * @param url 请求地址 * @param body Http主体 */ constructor(ioc: Ioc, httpMethod: HttpMethod, url: string, body?: any); /** * 设置请求重试次数 * @param value 请求重试次数,默认值: 3 */ retry(value: number): HttpRequest; /** * 设置跨域是否允许携带cookie * @param value 设置为true则允许携带,默认值: true */ withCredentials(value: boolean): HttpRequest; /** * 添加Http头 * @param name 名称 * @param value 值 */ header(name: string, value: any): HttpRequest; /** * 设置内容类型 * @param contentType 内容类型 */ contentType(contentType: HttpContentType): HttpRequest; /** * 设置响应类型 * @param responseType 响应类型 */ responseType(responseType: any): HttpRequest; /** * 添加Http参数,添加到url查询字符串 * @param data 参数对象 */ param(data: any): HttpRequest; /** * 添加Http参数,添加到url查询字符串 * @param name 名称 * @param value 值 */ param(name: string, value: string): HttpRequest; /** * 添加Http参数 */ private paramByObject; /** * 获取值 */ private getValue; /** * 处理响应 * @param handler 响应处理函数 * @param errorHandler 错误处理函数 * @param beforeHandler 发送前处理函数,返回false则取消发送 * @param completeHandler 请求完成处理函数 */ handle(handler: (value: T) => void, errorHandler?: (error: HttpErrorResponse) => void, beforeHandler?: () => boolean, completeHandler?: () => void): void; /** * 处理响应 * @param handler 响应处理函数 * @param errorHandler 错误处理函数 * @param beforeHandler 发送前处理函数,返回false则取消发送 * @param completeHandler 请求完成处理函数 */ handleAsync(handler: (value: T) => void, errorHandler?: (error: HttpErrorResponse) => void, beforeHandler?: () => boolean, completeHandler?: () => void): Promise; /** * 发送请求 */ request(): Observable; /** * 初始化内容类型 */ private initContentType; /** * 获取内容类型 * @param contentType */ private getContentType; /** * 获取body */ private getBody; /** * 对body进行处理 */ private processBody; /** * 配置请求客户端 * @param handler 请求客户端配置操作 */ configClient(handler: (client: Observable) => Observable): HttpRequest; /** * 获取请求客户端 */ private getClient; /** * 下载文件 * @param fileName 文件名,包含扩展名,范例: a.png * @param getUrl 文件名,包含扩展名,范例: a.png */ download(fileName?: any, getUrl?: (result: any) => Promise): void; /** * 获取下载文件地址 */ private getDownloadUrl; }