在go语言中使用HEAD请求检查网页是否存在的示例
Go  /  管理员 发布于 11个月前   367
如何利用 HEAD 请求来获取网络服务器的响应状态,而不包含响应正文。
如果我们想检索响应头中的元信息,但不需要响应正文,这种方法也很有用。
有时,我们需要先检查网络服务器是否正常运行,然后再进一步查询,
或者只是想在不下载 HTML 内容的情况下检查网页是否存在。
下面的代码示例
将通过命令行参数查询给定的 URL,如果网页存在,它将返回有效的 HTTP 响应代码,
如 OK、FOUND 或 MOVED PERMANENTLY。
如果网页不在线,程序会退出。
注意
某些网络服务器处理 HTTP 与 HTTPS 的方式不同。
有时,您需要同时查询网页的 HTTP 和 HTTPS 版本,
以确定它们的实际可用性,这取决于您要查询的内容。
注意:
如果收到 "不支持协议方案 "的错误信息,请确保在域名前加上 http 或 https。
代码示例:
package main
import (
"fmt"
"net/http"
"os"
)
func main() {
if len(os.Args) != 2 {
fmt.Printf("Usage : %s <URL> \n", os.Args[0])
os.Exit(0)
}
url := os.Args[1]
fmt.Println("Heading ", url)
client := &http.Client{}
resp, err := client.Head(url)
if err != nil {
fmt.Println(err)
os.Exit(-1)
}
fmt.Println(url, " status is : ", resp.Status)
}
输出:
$ ./headrequest https://www.facebook.com
Heading https://www.facebook.com
https://www.facebook.com status is : 200 OK
$ ./headrequest https://www.zongscan.com
Heading https://www.zongscan.com
https://www.zongscan.com status is : 200 OK
$ ./headrequest https://www.porkchop.com
Heading https://www.porkchop.com
Head https://www.porkchop.com: read tcp 192.168.1.69:33176->69.172.201.153:443: read: connection reset by peer
$ ./headrequest http://www.porkchop.com
Heading http://www.porkchop.com
http://www.porkchop.com status is : 200 OK
$ ./headrequest https://www.punyu.com
Heading https://www.punyu.com
Head https://www.punyu.com: x509: certificate is valid for *.asg.to, asg.to, not www.punyu.com
$ ./headrequest http://www.punyu.com
Heading http://www.punyu.com
http://www.punyu.com status is : 200 OK
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号