本篇内容:http编程
http编程
http协议属于应用层协议
一个普通的http请求大致的过程如下:
HTTP协议:应用层的客户端发送访问web服务器的http请求到网络层,
TCP协议:传输层将请求数据进行分割后转发给网络层,
IP协议:网络层职责是搜索web服务器地址并传送数据。
HttpService
package main
import (
"fmt"
"net/http"
)
func handleConn(resp http.ResponseWriter, req *http.Request) {
fmt.Println(req.Method)
fmt.Println(req.URL)
fmt.Println(req.Header)
fmt.Println(req.Body)
//response
resp.Write([]byte("hello world"))
}
func main() {
//注册处理函数,需要写在ListenAndServe之前,否则可能不生效
http.HandleFunc("/hello", handleConn) //@RequestMapping("/hello"),handleConn处理request
//监听绑定
http.ListenAndServe(":8080", nil) //服务器启动在8080端口
}
HttpClient
package main
import (
"fmt"
"net/http"
)
func main() {
//GET请求http://127.0.0.1:8080/hello
resp, err := http.Get("http://127.0.0.1:8080/hello")
if nil != err {
fmt.Println("http.Get error:", err)
}
//状态码、请求头
fmt.Println(resp.Status)
fmt.Println(resp.StatusCode)
fmt.Println(resp.Header)
//读取response数据
buffer := make([]byte, 1024)
for {
n, err := resp.Body.Read(buffer)
if 0 == n {
fmt.Println(err)
break
}
fmt.Println(string(buffer))
}
}
运行HttpService后启动HttpClient发送请求
不当之处,请予指正。