nodejs的http request发送get、post请求

1、引入相关模块

使用http request时必须先引入httpquerystring模块,如下:

// 引入相关模块
var http = require('http')
var querystring = require('querystring')
2、使用

get请求

// 需要提交的数据
var data = {
	a: 111,
	time: Date.now()
}
var dataString = querystring.stringify(data)	// 转换为字符串格式
var option = {
	hostname: '127.0.0.1',	// 要访问的服务器的ip地址
	port: 3000,  // 要访问的服务器的端口
	path: '/xx/xx?arg=' + dataString, // 请求的接口和传递的参数
	method: 'GET'	// 请求方式
}
var rep = http.request(option, function(res){
	console.log('状态码:' + res.statusCode)
	console.log('响应头:' + JSON.stringify(res.headers))
	res.setEncoding('utf8');
	res.on('data', (chunk) => {
    	console.log(`响应主体: ${chunk}`);
  	});
  	res.on('end', () => {
		console.log('响应中已无数据');
  	});
})

req.on('error', (e) => {
	console.error(`请求遇到问题: ${e.message}`);
});
req.end(); 	// 必须始终调用 req.end() 来表示请求的结束

post请求

var data = {
	a: 111,
	time: Date.now()
}
var dataString = querystring.stringify(data)	// 转换为字符串格式
var option = {
	hostname: '127.0.0.1',	// 要访问的服务器的ip地址
	port: 3000,  // 要访问的服务器的端口
	path: '/xx/xx', // 请求的接口
	method: 'POST',	// 请求方式
	headers: {  
        'Content-Type': 'application/x-www-form-urlencoded'  
    } 
}
var rep = http.request(option, function(res){
	console.log('状态码:' + res.statusCode)
	console.log('响应头:' + JSON.stringify(res.headers))
	res.setEncoding('utf8');
	res.on('data', (chunk) => {
    	console.log(`响应主体: ${chunk}`);
  	});
  	res.on('end', () => {
		console.log('响应中已无数据');
  	});
})

req.on('error', (e) => {
	console.error(`请求遇到问题: ${e.message}`);
});
req.write(dataString)	// post请求携带的参数(将数据写入请求主体)
req.end(); 	// 必须始终调用 req.end() 来表示请求的结束

注:
post请求时,除了把method改为‘POST’外,还需要加上headers(请求头)
post请求是通过 req.writ( 参数 )来进行携带参数的

hosthostname的关系:
hostname 是 host 的别名。为了支持 url.parse(),如果同时指定了 host 和 hostname,则使用 hostname。

你可能感兴趣的:(nodejs,http,request)