当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript ClientRequest.on方法代码示例

本文整理汇总了TypeScript中http.ClientRequest.on方法的典型用法代码示例。如果您正苦于以下问题:TypeScript ClientRequest.on方法的具体用法?TypeScript ClientRequest.on怎么用?TypeScript ClientRequest.on使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在http.ClientRequest的用法示例。


在下文中一共展示了ClientRequest.on方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: resolve

 return new Promise<void>((resolve, reject) => {
     let parsedUrl: url.Url = url.parse(urlString);
     let request: ClientRequest = https.request({
         host: parsedUrl.host,
         path: parsedUrl.path,
         agent: util.GetHttpsProxyAgent(),
         rejectUnauthorized: vscode.workspace.getConfiguration().get("http.proxyStrictSSL", true)
     }, (response) => {
         if (response.statusCode == 301 || response.statusCode == 302) {
             let redirectUrl: string | string[];
             if (typeof response.headers.location === "string") {
                 redirectUrl = response.headers.location;
             } else {
                 redirectUrl = response.headers.location[0];
             }
             return resolve(downloadCpptoolsJson(redirectUrl)); // Redirect - download from new location
         }
         if (response.statusCode != 200) {
             return reject();
         }
         let downloadedBytes = 0; // tslint:disable-line
         let cppToolsJsonFile: fs.WriteStream = fs.createWriteStream(util.getExtensionFilePath("cpptools.json"));
         response.on('data', (data) => { downloadedBytes += data.length; });
         response.on('end', () => { cppToolsJsonFile.close(); });
         cppToolsJsonFile.on('close', () => { resolve(); });
         response.on('error', (error) => { reject(); });
         response.pipe(cppToolsJsonFile, { end: false });
     });
     request.on('error', (error) => { reject(); });
     request.end();
 });
开发者ID:appTimesTV,项目名称:vscode-cpptools,代码行数:31,代码来源:abTesting.ts

示例2: getHttpsProxyAgent

 return new Promise<string>((resolve, reject) => {
     let parsedUrl: url.Url = url.parse(urlStr);
     let request: ClientRequest = https.request({
         host: parsedUrl.host,
         path: parsedUrl.path,
         agent: getHttpsProxyAgent(),
         rejectUnauthorized: vscode.workspace.getConfiguration().get('http.proxyStrictSSL', true),
         headers: headers
     }, (response) => {
         if (response.statusCode === 301 || response.statusCode === 302) { // If redirected
             // Download from new location
             let redirectUrl: string;
             if (typeof response.headers.location === 'string') {
                 redirectUrl = response.headers.location;
             } else {
                 redirectUrl = response.headers.location[0];
             }
             return resolve(downloadFileToStr(redirectUrl, headers));
         }
         if (response.statusCode !== 200) { // If request is not successful
             return reject();
         }
         let downloadedData: string = '';
         response.on('data', (data) => { downloadedData += data; });
         response.on('error', (error) => { reject(error); });
         response.on('end', () => { resolve(downloadedData); });
     });
     request.on('error', (error) => { reject(error); });
     request.end();
 });
开发者ID:swyphcosmo,项目名称:vscode-cpptools,代码行数:30,代码来源:common.ts

示例3: addTimeOutHandler

export function addTimeOutHandler(request: ClientRequest, callback: (error: Error) => void) {
  request.on("socket", function (socket: Socket) {
    socket.setTimeout(60 * 1000, () => {
      callback(new Error("Request timed out"))
      request.abort()
    })
  })
}
开发者ID:MatthijsvandenBosch,项目名称:electron-builder,代码行数:8,代码来源:httpRequest.ts

示例4: extractChannelTitle

	channels.forEach((channel: IChannel) => {
		let liveUrl: string = channel.url.replace(/^http:\/\//, 'http://live.');
		let request: ClientRequest = http.get(liveUrl, (res: IncomingMessage) => {
			let url: string = channel.url;
			let body: string = "";
			res.setEncoding("utf8");
			res.on("data", (chunk: string) => {
				body += chunk;
			});
			res.on("error", (error: any) => {
				console.log(`Conection Error : ${error.message}`);
			});
			res.on("end", () => {
				let title: string = extractChannelTitle(body);
				let broadcasting: boolean = checkBroadcasting(body);
				if (broadcasting) {
					if (lastChannelBroadcastings[url] === undefined ||
						lastChannelBroadcastings[url] === false) {
						lastChannelBroadcastings[url] = true;
						notifier.notify({
							title: title,
							message: url,
							icon: __dirname + "/../browser/notification.png",
							sound: true,
							wait: true,
						});
						notifier.on("click", (notifierObject: NodeNotifier, options: Notification) => {
							electron.shell.openExternal(options.message + '/live');
						});
					}
				} else {
					lastChannelBroadcastings[url] = false;
				}
				updateTrayIcon();
				if (mainWindow !== undefined) {
					mainWindow.webContents.send("updateChannelStatus", JSON.stringify({
						url: url,
						title: title,
						broadcasting: broadcasting,
					}));
				}
			});
		});
		request.on("error", (error: any) => {
			console.log(`Conection Error : ${error.message}`);
		});
	});
开发者ID:data9824,项目名称:SavannaAlert,代码行数:47,代码来源:main.ts

示例5: runPostRequest

function runPostRequest(host:string, path:string, body:string, callback:(ClientResponse)=>void) {
    const options = {
        hostname: host,
        port: 3000,
        path: path,
        method: 'POST',
        headers: {
            'Content-Type': 'text/plain',
            'Content-Length': Buffer.byteLength(body)
        }
    };
    let request:ClientRequest = http.request(options, callback);
    request.on('error', traceErrorIfPresent);
    var splittedBody:Array<string> = body.split('');
    while (splittedBody.length > 0) {
        request.write(splittedBody.splice(0, 15).join(''));
    }
    request.end();
}
开发者ID:jan-osch,项目名称:nodexplore,代码行数:19,代码来源:simple-server.js.ts

示例6:

    req.removeHeader('Date');

    // write
    const chunk = Buffer.alloc(16390, 'Й');
    req.write(chunk);
    req.write('a');
    req.end();

    // abort
    req.abort();

    // connection
    req.connection.on('pause', () => { });

    // event
    req.on('data', () => { });
}

{
    // Status codes
    let codeMessage: string = http.STATUS_CODES['400']!;
    codeMessage = http.STATUS_CODES[400]!;
}

{
    let agent: http.Agent = new http.Agent({
        keepAlive: true,
        keepAliveMsecs: 10000,
        maxSockets: Infinity,
        maxFreeSockets: 256,
        timeout: 15000
开发者ID:SaschaNaz,项目名称:DefinitelyTyped,代码行数:31,代码来源:http.ts

示例7: default

export default (request: ClientRequest, delays: Delays, options: any) => {
	/* istanbul ignore next: this makes sure timed-out isn't called twice */
	if (Reflect.has(request, reentry)) {
		return noop;
	}

	(request as any)[reentry] = true;

	let stopNewTimeouts = false;

	const addTimeout = (delay: number, callback: (...args: any) => void, ...args: any): (() => void) => {
		// An error had been thrown before. Going further would result in uncaught errors.
		// See https://github.com/sindresorhus/got/issues/631#issuecomment-435675051
		if (stopNewTimeouts) {
			return noop;
		}

		// Event loop order is timers, poll, immediates.
		// The timed event may emit during the current tick poll phase, so
		// defer calling the handler until the poll phase completes.
		let immediate: NodeJS.Immediate;
		const timeout: NodeJS.Timeout = setTimeout(() => {
			immediate = setImmediate(callback, delay, ...args);
			/* istanbul ignore next: added in node v9.7.0 */
			if (immediate.unref) {
				immediate.unref();
			}
		}, delay);

		/* istanbul ignore next: in order to support electron renderer */
		if (timeout.unref) {
			timeout.unref();
		}

		const cancel = (): void => {
			clearTimeout(timeout);
			clearImmediate(immediate);
		};

		cancelers.push(cancel);

		return cancel;
	};

	const {host, hostname} = options;
	const timeoutHandler = (delay: number, event: string): void => {
		request.emit('error', new TimeoutError(delay, event));
		request.abort();
	};

	const cancelers: Array<() => void> = [];
	const cancelTimeouts = (): void => {
		stopNewTimeouts = true;
		cancelers.forEach(cancelTimeout => cancelTimeout());
	};

	request.on('error', (error: Error): void => {
		if (error.message !== 'socket hang up') {
			cancelTimeouts();
		}
	});
	request.once('response', response => {
		response.once('end', cancelTimeouts);
	});

	if (delays.request !== undefined) {
		addTimeout(delays.request, timeoutHandler, 'request');
	}

	if (delays.socket !== undefined) {
		const socketTimeoutHandler = (): void => {
			timeoutHandler(delays.socket!, 'socket');
		};

		request.setTimeout(delays.socket, socketTimeoutHandler);

		// `request.setTimeout(0)` causes a memory leak.
		// We can just remove the listener and forget about the timer - it's unreffed.
		// See https://github.com/sindresorhus/got/issues/690
		cancelers.push((): void => {
			request.removeListener('timeout', socketTimeoutHandler);
		});
	}

	request.once('socket', (socket: net.Socket): void => {
		const {socketPath} = request as any;

		/* istanbul ignore next: hard to test */
		if (socket.connecting) {
			if (delays.lookup !== undefined && !socketPath && !net.isIP(hostname || host)) {
				const cancelTimeout = addTimeout(delays.lookup, timeoutHandler, 'lookup');
				socket.once('lookup', cancelTimeout);
			}

			if (delays.connect !== undefined) {
				const timeConnect = () => addTimeout(delays.connect!, timeoutHandler, 'connect');

				if (socketPath || net.isIP(hostname || host)) {
					socket.once('connect', timeConnect());
				} else {
//.........这里部分代码省略.........
开发者ID:sindresorhus,项目名称:got,代码行数:101,代码来源:timed-out.ts


注:本文中的http.ClientRequest.on方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。