You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							85 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							85 lines
						
					
					
						
							1.8 KiB
						
					
					
				var ClientRequest = require('./lib/request') | 
						|
var response = require('./lib/response') | 
						|
var extend = require('xtend') | 
						|
var statusCodes = require('builtin-status-codes') | 
						|
var url = require('url') | 
						|
 | 
						|
var http = exports | 
						|
 | 
						|
http.request = function (opts, cb) { | 
						|
	if (typeof opts === 'string') | 
						|
		opts = url.parse(opts) | 
						|
	else | 
						|
		opts = extend(opts) | 
						|
 | 
						|
	// Normally, the page is loaded from http or https, so not specifying a protocol | 
						|
	// will result in a (valid) protocol-relative url. However, this won't work if | 
						|
	// the protocol is something else, like 'file:' | 
						|
	var defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : '' | 
						|
 | 
						|
	var protocol = opts.protocol || defaultProtocol | 
						|
	var host = opts.hostname || opts.host | 
						|
	var port = opts.port | 
						|
	var path = opts.path || '/' | 
						|
 | 
						|
	// Necessary for IPv6 addresses | 
						|
	if (host && host.indexOf(':') !== -1) | 
						|
		host = '[' + host + ']' | 
						|
 | 
						|
	// This may be a relative url. The browser should always be able to interpret it correctly. | 
						|
	opts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path | 
						|
	opts.method = (opts.method || 'GET').toUpperCase() | 
						|
	opts.headers = opts.headers || {} | 
						|
 | 
						|
	// Also valid opts.auth, opts.mode | 
						|
 | 
						|
	var req = new ClientRequest(opts) | 
						|
	if (cb) | 
						|
		req.on('response', cb) | 
						|
	return req | 
						|
} | 
						|
 | 
						|
http.get = function get (opts, cb) { | 
						|
	var req = http.request(opts, cb) | 
						|
	req.end() | 
						|
	return req | 
						|
} | 
						|
 | 
						|
http.ClientRequest = ClientRequest | 
						|
http.IncomingMessage = response.IncomingMessage | 
						|
 | 
						|
http.Agent = function () {} | 
						|
http.Agent.defaultMaxSockets = 4 | 
						|
 | 
						|
http.globalAgent = new http.Agent() | 
						|
 | 
						|
http.STATUS_CODES = statusCodes | 
						|
 | 
						|
http.METHODS = [ | 
						|
	'CHECKOUT', | 
						|
	'CONNECT', | 
						|
	'COPY', | 
						|
	'DELETE', | 
						|
	'GET', | 
						|
	'HEAD', | 
						|
	'LOCK', | 
						|
	'M-SEARCH', | 
						|
	'MERGE', | 
						|
	'MKACTIVITY', | 
						|
	'MKCOL', | 
						|
	'MOVE', | 
						|
	'NOTIFY', | 
						|
	'OPTIONS', | 
						|
	'PATCH', | 
						|
	'POST', | 
						|
	'PROPFIND', | 
						|
	'PROPPATCH', | 
						|
	'PURGE', | 
						|
	'PUT', | 
						|
	'REPORT', | 
						|
	'SEARCH', | 
						|
	'SUBSCRIBE', | 
						|
	'TRACE', | 
						|
	'UNLOCK', | 
						|
	'UNSUBSCRIBE' | 
						|
] |