如何在 GO 中执行 HEAD 请求?
How to execute a HEAD Request in GO?
我想使用 GO 获取页面的内容长度 net/http?我可以在终端中使用 curl -i -X HEAD https://golang.org
执行此操作,然后检查内容长度字段。
res, err := http.Head("https://golang.org")
if err != nil {
panic(err)
}
contentlength:=res.ContentLength
fmt.Printf("ContentLength:%v",contentlength)
另一个选项:
package main
import "net/http"
func main() {
req, e := http.NewRequest("HEAD", "https://whosebug.com", nil)
if e != nil {
panic(e)
}
res, e := new(http.Client).Do(req)
if e != nil {
panic(e)
}
println(res.StatusCode == 200)
}
有超时
package main
import (
"net/http"
"os"
"fmt"
"time"
)
func main() {
var client = &http.Client{
Timeout: time.Second * 10,
}
res, err := client.Head("https://whosebug.com")
if err != nil {
if os.IsTimeout(err) {
// timeout
panic(err)
} else {
panic(err)
}
}
fmt.Println("Status:", res.StatusCode)
fmt.Println("ContentLength:", res.ContentLength)
}
我想使用 GO 获取页面的内容长度 net/http?我可以在终端中使用 curl -i -X HEAD https://golang.org
执行此操作,然后检查内容长度字段。
res, err := http.Head("https://golang.org")
if err != nil {
panic(err)
}
contentlength:=res.ContentLength
fmt.Printf("ContentLength:%v",contentlength)
另一个选项:
package main
import "net/http"
func main() {
req, e := http.NewRequest("HEAD", "https://whosebug.com", nil)
if e != nil {
panic(e)
}
res, e := new(http.Client).Do(req)
if e != nil {
panic(e)
}
println(res.StatusCode == 200)
}
有超时
package main
import (
"net/http"
"os"
"fmt"
"time"
)
func main() {
var client = &http.Client{
Timeout: time.Second * 10,
}
res, err := client.Head("https://whosebug.com")
if err != nil {
if os.IsTimeout(err) {
// timeout
panic(err)
} else {
panic(err)
}
}
fmt.Println("Status:", res.StatusCode)
fmt.Println("ContentLength:", res.ContentLength)
}