| /// <reference types="node" /> |
| import http = require('http'); |
| export interface IHeaders { |
| [key: string]: any; |
| } |
| export interface IHttpClient { |
| options(requestUrl: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>; |
| get(requestUrl: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>; |
| del(requestUrl: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>; |
| post(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>; |
| patch(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>; |
| put(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>; |
| sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>; |
| request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: IHeaders): Promise<IHttpClientResponse>; |
| requestRaw(info: IRequestInfo, data: string | NodeJS.ReadableStream): Promise<IHttpClientResponse>; |
| requestRawWithCallback(info: IRequestInfo, data: string | NodeJS.ReadableStream, onResult: (err: any, res: IHttpClientResponse) => void): void; |
| } |
| export interface IRequestHandler { |
| prepareRequest(options: http.RequestOptions): void; |
| canHandleAuthentication(response: IHttpClientResponse): boolean; |
| handleAuthentication(httpClient: IHttpClient, requestInfo: IRequestInfo, objs: any): Promise<IHttpClientResponse>; |
| } |
| export interface IHttpClientResponse { |
| message: http.IncomingMessage; |
| readBody(): Promise<string>; |
| } |
| export interface IRequestInfo { |
| options: http.RequestOptions; |
| parsedUrl: URL; |
| httpModule: any; |
| } |
| export interface IRequestOptions { |
| headers?: IHeaders; |
| socketTimeout?: number; |
| ignoreSslError?: boolean; |
| allowRedirects?: boolean; |
| allowRedirectDowngrade?: boolean; |
| maxRedirects?: number; |
| maxSockets?: number; |
| keepAlive?: boolean; |
| deserializeDates?: boolean; |
| allowRetries?: boolean; |
| maxRetries?: number; |
| } |
| export interface ITypedResponse<T> { |
| statusCode: number; |
| result: T | null; |
| headers: Object; |
| } |