golang http server如何设置request的context超时
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang http server如何设置request的context超时相关的知识,希望对你有一定的参考价值。
参考技术A main函数handler函数
在handler函数里面从r.Context生成一个新的context,并传递给功能函数GetUser(ctx context).
功能函数
在功能函数里面,异步方式调用起来具体的实现功能,然后等待在ctx.Done()或者c里面有数据。
使用curl工具发起client请求:
http-url 发送请求
var http = require(‘http‘)
// 1. 创建 Server
var server = http.createServer()
// 2. 监听 request 请求事件,设置请求处理函数
server.on(‘request‘, function (req, res) {
console.log(‘收到请求了,请求路径是:‘ + req.url)
console.log(‘请求我的客户端的地址是:‘, req.socket.remoteAddress, req.socket.remotePort)
// res.write(‘hello‘)
// res.write(‘ world‘)
// res.end()
// 上面的方式比较麻烦,推荐使用更简单的方式,直接 end 的同时发送响应数据
// res.end(‘hello nodejs‘)
// 根据不同的请求路径发送不同的响应结果
// 1. 获取请求路径
// req.url 获取到的是端口号之后的那一部分路径
// 也就是说所有的 url 都是以 / 开头的
// 2. 判断路径处理响应
var url = req.url
if (url === ‘/‘) {
res.end(‘index page‘)
} else if (url === ‘/login‘) {
res.end(‘login page‘)
} else if (url === ‘/products‘) {
var products = [{
name: ‘苹果 X‘,
price: 8888
},
{
name: ‘菠萝 X‘,
price: 5000
},
{
name: ‘小辣椒 X‘,
price: 1999
}
]
// 响应内容只能是二进制数据或者字符串
// 数字
// 对象
// 数组
// 布尔值
res.end(JSON.stringify(products))
} else {
res.end(‘404 Not Found.‘)
}
})
// 3. 绑定端口号,启动服务
server.listen(3000, function () {
console.log(‘服务器启动成功,可以访问了。。。‘)
})
以上是关于golang http server如何设置request的context超时的主要内容,如果未能解决你的问题,请参考以下文章