| /// <reference types="node" /> | |
| import http = require('http'); | |
| import ifm = require('./interfaces'); | |
| export declare enum HttpCodes { | |
| OK = 200, | |
| MultipleChoices = 300, | |
| MovedPermanently = 301, | |
| ResourceMoved = 302, | |
| SeeOther = 303, | |
| NotModified = 304, | |
| UseProxy = 305, | |
| SwitchProxy = 306, | |
| TemporaryRedirect = 307, | |
| PermanentRedirect = 308, | |
| BadRequest = 400, | |
| Unauthorized = 401, | |
| PaymentRequired = 402, | |
| Forbidden = 403, | |
| NotFound = 404, | |
| MethodNotAllowed = 405, | |
| NotAcceptable = 406, | |
| ProxyAuthenticationRequired = 407, | |
| RequestTimeout = 408, | |
| Conflict = 409, | |
| Gone = 410, | |
| TooManyRequests = 429, | |
| InternalServerError = 500, | |
| NotImplemented = 501, | |
| BadGateway = 502, | |
| ServiceUnavailable = 503, | |
| GatewayTimeout = 504 | |
| } | |
| export declare enum Headers { | |
| Accept = "accept", | |
| ContentType = "content-type" | |
| } | |
| export declare enum MediaTypes { | |
| ApplicationJson = "application/json" | |
| } | |
| /** | |
| * Returns the proxy URL, depending upon the supplied url and proxy environment variables. | |
| * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com | |
| */ | |
| export declare function getProxyUrl(serverUrl: string): string; | |
| export declare class HttpClientError extends Error { | |
| constructor(message: string, statusCode: number); | |
| statusCode: number; | |
| result?: any; | |
| } | |
| export declare class HttpClientResponse implements ifm.IHttpClientResponse { | |
| constructor(message: http.IncomingMessage); | |
| message: http.IncomingMessage; | |
| readBody(): Promise<string>; | |
| } | |
| export declare function isHttps(requestUrl: string): boolean; | |
| export declare class HttpClient { | |
| userAgent: string | undefined; | |
| handlers: ifm.IRequestHandler[]; | |
| requestOptions: ifm.IRequestOptions; | |
| private _ignoreSslError; | |
| private _socketTimeout; | |
| private _allowRedirects; | |
| private _allowRedirectDowngrade; | |
| private _maxRedirects; | |
| private _allowRetries; | |
| private _maxRetries; | |
| private _agent; | |
| private _proxyAgent; | |
| private _keepAlive; | |
| private _disposed; | |
| constructor(userAgent?: string, handlers?: ifm.IRequestHandler[], requestOptions?: ifm.IRequestOptions); | |
| options(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>; | |
| get(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>; | |
| del(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>; | |
| post(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>; | |
| patch(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>; | |
| put(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>; | |
| head(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>; | |
| sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>; | |
| /** | |
| * Gets a typed object from an endpoint | |
| * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise | |
| */ | |
| getJson<T>(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>; | |
| postJson<T>(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>; | |
| putJson<T>(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>; | |
| patchJson<T>(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>; | |
| /** | |
| * Makes a raw http request. | |
| * All other methods such as get, post, patch, and request ultimately call this. | |
| * Prefer get, del, post and patch | |
| */ | |
| request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: ifm.IHeaders): Promise<ifm.IHttpClientResponse>; | |
| /** | |
| * Needs to be called if keepAlive is set to true in request options. | |
| */ | |
| dispose(): void; | |
| /** | |
| * Raw request. | |
| * @param info | |
| * @param data | |
| */ | |
| requestRaw(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream): Promise<ifm.IHttpClientResponse>; | |
| /** | |
| * Raw request with callback. | |
| * @param info | |
| * @param data | |
| * @param onResult | |
| */ | |
| requestRawWithCallback(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream, onResult: (err: any, res: ifm.IHttpClientResponse) => void): void; | |
| /** | |
| * Gets an http agent. This function is useful when you need an http agent that handles | |
| * routing through a proxy server - depending upon the url and proxy environment variables. | |
| * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com | |
| */ | |
| getAgent(serverUrl: string): http.Agent; | |
| private _prepareRequest; | |
| private _mergeHeaders; | |
| private _getExistingOrDefaultHeader; | |
| private _getAgent; | |
| private _performExponentialBackoff; | |
| private static dateTimeDeserializer; | |
| private _processResponse; | |
| } |