在go语言中使用HEAD请求检查网页是否存在的示例
Go  /  管理员 发布于 1个月前   202
如何利用 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
博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..博主 在
科学上网翻墙之v2rayN-Core客户端免费公益节点使用教程中评论 @ mashrdn 多切换几个节点测试,免费ssr是没那么稳..mashrdn 在
科学上网翻墙之v2rayN-Core客户端免费公益节点使用教程中评论 V2rayn免费节点添加上去了,youtobe无法打开网页,是怎么回事..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号