Golang学习笔记17:Go语言之HTTP
Go语言之HTTP
一、基本使用
HTTP: Go语言标准库内建提供了net/http包
使用net/http包提供的http.ListenAndServe()方法,可以在指定的地址进行监听,开启一个HTTP,服务端该方法的原型如下:
func ListecAndServe(addr string , handler Handler) error
一).http.ListenAndServe方法用法解释:
- 处理HTTP请求
该方法用于在指定的TCP网络地址addr进行监听,然后调用服务端处理程序来处理传入的连接请求。该方法有两个参数:第一个参数addr即监听地址;第二个参数表示服务端处理程序,通常为空,这意味着服务端调用http.DefaultServeMux进行处理, 而服务端编写的业务逻辑处理程序http.Handle()或http.HandleFunc()默认注入http.DefaultServeMux中。
- 处理HTTPS请求
func ListenAndServeTLS(addr string , certFile string , keyFile string , handler Handler) error
二).路由处理:
http.HandleFunc()方法接受两个参数。
第一个参数是HTTP请求的目标路径”/hello” ,该参数值可以是字符串,也可以是字符串形式的正则表达式
第二个参数指定具体的回调方法,比如helloHandler。
当我们的程序运行起来后,访问http://locakhost:8080/hello , 程序就会去调用helloHandler()方法中的业务逻辑程序。
1. 本地搭建服务
package main
import "net/http"
func main() {
http.HandleFunc("/hello" , func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("hello sailaoda"))
})
http.ListenAndServe("127.0.0.1:8080" , nil)
}
运行结果:浏览器输入127.0.0.1:8080/hello ,得到结果如下
2. 访问三方函数:通过get/post访问
一个简单的get 在线服务
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
resp , err := http.Get("http://www.baidu.com")
if err != nil {
panic(err)
}
defer resp.Body.Close() //延缓关闭
body,err := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
输出结果:
一个简单的基本爬虫。
post请求服务
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))
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 赛 の 任意门!
评论
ValineGitalk





