英文:
GoQuery Response Code
问题
在GoQuery中,如果我创建了以下代码片段:
doc, err := goquery.NewDocument(s)
if err != nil {
log.Fatal(err)
}
其中s
是一个有效的URL,我可以看到错误字符串,但如果页面返回403错误,我该如何找出并停止代码运行,而不是让它继续运行?
在GoQuery中,有没有一种方法可以找到HTTP响应?
英文:
In GoQuery, if I create a snippet as follows:
doc, err := goquery.NewDocument(s)
if err != nil {
log.Fatal(err)
}
where s is a valid url, I can see the error string, but if the page is returning a 403, how do I find out and stop instead of letting my code run?
Is there a way to find the http response using Goquery?
答案1
得分: 1
我不认为NewDocument
方法可以根据状态码来判断是否终止,但你可以使用NewDocumentFromResponse
方法来实现。例如:
res, err := http.Get(url)
if err != nil {
log.Fatal(err)
}
// 检查状态码是否为200(或者非403,或者其他你想要的状态码)
if res.StatusCode == 200 {
doc, err := goquery.NewDocumentFromResponse(res)
if err != nil {
log.Fatal(err)
}
// ...
}
英文:
I don't think that NewDocument
gives you the chance to bail based on a status code, but you can use NewDocumentFromResponse
instead. E.g.:
res, err := http.Get(url)
if err != nil {
log.Fatal(err)
}
// Check for a 200 status (or a non-403, or whatever you want)
if res.StatusCode == 200 {
doc, err := goquery.NewDocumentFromResponse(res)
if err != nil {
log.Fatal(err)
}
// ...
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论