GO http
在Golang中寫一個http web伺服器大致是有兩種方法:
1 使用net包的net.Listen來對埠進行監聽
2 使用net/http包
先看到的是Get,Post,PostForm三個函式。這三個函式直接實現了http客戶端
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
response,_ := http.Get("http://www.baidu.com")
defer response.Body.Close()
body,_ := ioutil.ReadAll(response.Body)
fmt.Println(string(body))
}
除了使用這三個函式來建立一個簡單客戶端,還可以使用:
http.Client和http.NewRequest來模擬請求
package main
import (
"net/http"
"io/ioutil"
"fmt"
)
func main() {
client := &http.Client{}
reqest, _ := http.NewRequest("GET", "http://www.baidu.com", nil)
reqest.Header.Set("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
reqest.Header.Set("Accept-Charset","GBK,utf-8;q=0.7,*;q=0.3")
reqest.Header.Set("Accept-Encoding","gzip,deflate,sdch")
reqest.Header.Set("Accept-Language","zh-CN,zh;q=0.8")
reqest.Header.Set("Cache-Control","max-age=0")
reqest.Header.Set("Connection","keep-alive")
response,_ := client.Do(reqest)
if response.StatusCode == 200 {
body, _ := ioutil.ReadAll(response.Body)
bodystr := string(body);
fmt.Println(bodystr)
}
}
http包封裝地非常bt,只需要兩行!!:
package main
import (
"net/http"
)
func SayHello(w http.ResponseWriter, req *http.Request) {
w.Write([]byte("Hello"))
}
func main() {
http.HandleFunc("/hello", SayHello)
http.ListenAndServe(":8001", nil)
}
進行埠的監聽:http.ListenAndServe(":8001", nil)
註冊路徑處理函式:http.HandleFunc("/hello", SayHello)
處理函式:func SayHello(w http.ResponseWriter, req *http.Request)
相關文章
- Go的http clientGoHTTPclient
- go http請求GoHTTP
- go實現http代理GoHTTP
- Go標準包—http clientGoHTTPclient
- go http請求流程分析GoHTTP
- go搞笑http請求庫GoHTTP
- go-kit微服務:HTTP RESTGo微服務HTTPREST
- Go如何響應http請求?GoHTTP
- Go標準包-http包serverGoHTTPServer
- Go net/http 超時指導GoHTTP
- Go語言HTTP/2探險之旅GoHTTP
- 型別安全的 Go HTTP 請求型別GoHTTP
- 用 htest 給 go 寫 http 測試GoHTTP
- Go 語言 HTTP Server 原始碼分析GoHTTPServer原始碼
- go微服務系列(三) - 服務呼叫(http)Go微服務HTTP
- 用Go語言寫HTTP中介軟體GoHTTP
- 一文讀懂Go Http Server原理GoHTTPServer
- go socket、http網路程式設計demoGoHTTP程式設計
- Go Module 支援 HTTP 協議的私有庫方案GoHTTP協議
- Go語言HTTP請求流式寫入bodyGoHTTP
- 【go網路程式設計】-HTTP程式設計Go程式設計HTTP
- Go使用net/http庫傳送GET請求GoHTTP
- Go net/http 標準庫思維導圖GoHTTP
- go微服務系列(四) - http api中引入protobufGo微服務HTTPAPI
- Go Web學習 -標準庫 net/http 使用GoWebHTTP
- Go For Web:Golang http 包詳解(原始碼剖析)WebGolangHTTP原始碼
- Go HTTP GET 請求可以傳送 body 嗎GoHTTP
- Go net/http 超時機制完全手冊GoHTTP
- 深入學習用 Go 編寫 HTTP 伺服器GoHTTP伺服器
- Go 語言 http/https 檔案伺服器GoHTTP伺服器
- Go Web 程式設計入門--深入學習用 Go 編寫 HTTP 伺服器GoWeb程式設計HTTP伺服器
- Go Web 程式設計--深入學習解析 HTTP 請求GoWeb程式設計HTTP
- go 自定義http.Client - 動態修改請求BodyGoHTTPclient
- Go Web學習(1)——標準庫http實現serverGoWebHTTPServer
- Go使用grpc+http打造高效能微服務GoRPCHTTP微服務
- go語言請求http介面示例 並解析jsonGoHTTPJSON
- 使用 gorilla/mux 增強 Go HTTP 伺服器的路由能力GoUXHTTP伺服器路由
- Go排坑:http.ServeMux意外重定向的問題分析GoHTTPUX