Seb*_*ian 5 http httpwebrequest go
我想创建一个简单的脚本来检查某个hostname:port是否正在运行.我只想获得一个bool
响应,如果该URL是实时的,但我不确定是否有一种直接的方式来做到这一点.
Tin*_*wor 14
如果您只想查看URL是否可访问,则可以使用net.DialTimeout.像这样:
timeout := time.Duration(1 * time.Second)
conn, err := net.DialTimeout("tcp","mysyte:myport", timeout)
if err != nil {
log.Println("Site unreachable, error: ", err)
}
Run Code Online (Sandbox Code Playgroud)
小智 8
如果要检查Web服务器是否对某个URL进行应答,则可以使用net/http调用HTTP GET请求.如果服务器根本没有响应,您将获得超时.您还可以检查响应状态.
resp, err := http.Get("http://google.com/")
if err != nil {
print(err.Error())
} else {
print(string(resp.StatusCode) + resp.Status)
}
Run Code Online (Sandbox Code Playgroud)
您可以通过初始化http.Client来更改默认超时.
timeout := time.Duration(1 * time.Second)
client := http.Client{
Timeout: timeout,
}
resp, err := client.Get("http://google.com")
Run Code Online (Sandbox Code Playgroud)
奖励:Go通常不依赖于异常,内置库通常不会出现恐慌,但会返回错误作为第二个值.看看为什么Go没有例外?.如果您对本机函数的调用发生恐慌,您可以认为发生了非常糟糕的事情.
小智 7
您可以发出 HEAD 请求:
package main
import "net/http"
func head(s string) bool {
r, e := http.Head(s)
return e == nil && r.StatusCode == 200
}
func main() {
b := head("https://stackoverflow.com")
println(b)
}
Run Code Online (Sandbox Code Playgroud)
https://golang.org/pkg/net/http#Head
归档时间: |
|
查看次数: |
5993 次 |
最近记录: |