十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章将为大家详细讲解有关go语言中http的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联公司是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十载时间我们累计服务了上千家以及全国政企客户,如橡塑保温等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞扬。1、net/http 包提供的 http.ListenAndServe() 方法,在指定的地址监听
该方法用于在指定的 TCP 网络地址 addr 进行监听,然后调用服务端处理程序来处理传入的连 接请求。该方法有两个参数:第一个参数 addr 即监听地址;第二个参数表示服务端处理程序, 通常为空,这意味着服务端调用 http.DefaultServeMux 进行处理,而服务端编写的业务逻 辑处理程序 http.Handle() 或 http.HandleFunc() 默认注入 http.DefaultServeMux 中。
2.处理https请求
func ListenAndServeTLS(addr string, certFile string, keyFile string, handler Handler) error
3.路由
http.HandleFunc()方法接受两个参数
第一个参数是HTTP请求的 目标路径"/hello",该参数值可以是字符串,也可以是字符串形式的正则表达式
第二个参数指定具体的回调方法,比如helloHandler。
当我们的程序运行起来后,访问http://localhost:8080/hello , 程序就会去调用helloHandler()方法中的业务逻辑程序。
4.get/post访问
resp, err := http.Get("...") defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) fmt.Println(string(body))
resp, err:=http.Post(“.....”, ”application/x-www-form-urlencoded”, strings.NewReader(“..=...”)) defer resp.Body.Close() body,err:=ioutil.ReadAll(resp.Body) fmt.Println(string(body))
package main import ( "fmt" "io/ioutil" "net/http" "strings" ) func main() { //模拟一个post提交请求 resp, err := http.Post("http://www.baidu.com", "application/x-www-form-urlencoded", strings.NewReader("id=1")) if err != nil { panic(err) } //关闭连接 defer resp.Body.Close() //读取报文中所有内容 body, err := ioutil.ReadAll(resp.Body) //输出内容 fmt.Println(string(body)) }
模拟一个http server 监听地址:127.0.0.1:8080
// http_server.go package main import ( //"fmt" "net/http" ) func main() { http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello world!")) }) http.ListenAndServe("127.0.0.1:8080", nil) }
关于“go语言中http的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。