登录
首页 >  Golang >  Go问答

正确的异步请求发布和获取方式是什么?

来源:stackoverflow

时间:2024-02-29 14:33:26 415浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《正确的异步请求发布和获取方式是什么?》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

go的HTTP包的官方文档是这么说的

要使用自定义标头发出请求,请使用 Client.NewRequest 和 Client.Do

但是,如果发布请求需要时间才能完成(异步),“Client.NewRequest”和“Client.Do”是否会等待响应?

在具有自定义标头的情况下执行异步发布和获取请求的正确方法是什么?


正确答案


你可以使用通道和goroutine

伪代码:

func sendRequest(resp chan *Client.Response, method, url string) {
   client := &http.Client{
    CheckRedirect: redirectPolicyFunc,
}  
   req, err := http.NewRequest(method, url, nil)
   response, err := client.Do(req)
   if err != nil {
}
   resp <- response
}

func getResponse(resp chan *Client.Response) {
    response := <- resp
}

canal := make(chan *Client.Response)
go sendRequest(canal, "GET", "http://google.com")
go getResponse(canal)

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>