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超时的主要内容,如果未能解决你的问题,请参考以下文章

golang之http请求的dns解析代码流程

golang net/http包 http请求的字节码读取与解析。

如何设置AJP协议的属性 "req_attribute"?

Golang GRPC 返回 EOF 错误

http-url 发送请求

深入理解Golang之http server