猿问

浏览器在执行 http 时返回带有 golang 的空响应。进入休息 API

尝试在执行 http 时捕获错误。获取,但如果远程服务器出现错误,例如没有答案,DNS名称未解析,它将在浏览器中返回空响应。这样做有什么权利呢?


例:


func GetStatus(w http.ResponseWriter, r *http.Request){


resp,err := http.Get("https://goodsfdsfgle.com")

    if err != nil {

          fmt.Fprint(w,"Remote server ok !")

                 } else { 

                           fmt.Fprint(w,"Remote server error")

                         }


}


func handleRequests() {

        http.HandleFunc("/status", GetStatus)

        log.Fatal(http.ListenAndServe(":10000",nil))

}



func main() {


    handleRequests()

}

当打开浏览器 localhost:10000/status get : localhost 没有发送任何数据。ERR_EMPTY_RESPONSE


但是如果网址还行,一切都还行,尝试使用延期,很少有类型的捕获错误。不工作。给出空响应


请帮忙


UYOU
浏览 93回答 2
2回答

绝地无双

函数中的错误检查不正确,并且您引入了未使用的局部变量。请按如下方式修复代码:GetStatusfunc GetStatus(w http.ResponseWriter, r *http.Request) {    _, err := http.Get("https://goodsfdsfgle.com")    if err != nil {        fmt.Fprint(w, "Remote server error")    } else {        fmt.Fprint(w, "Remote server ok !")    }}尝试使用 本地访问服务。您应该会收到其中一条消息。curl localhost:10000/statusRemote server...您需要进行更多调整才能创建有效的HTTP服务,但请尝试上面的代码,以使事情在开始时正常工作。

慕码人2483693

package mainimport ("fmt""log""net/http")func GetStatus(w http.ResponseWriter, r *http.Request){_,err := http.Get("https://goodsfdsfgle.com")if err != nil {fmt.Fprint(w,"Remote server error")} else {fmt.Fprint(w,"Remote server ok!")}}func handleRequests() {http.HandleFunc("/status", GetStatus)log.Fatal(http.ListenAndServe(":10000",nil))}func main() {handleRequests()}
随时随地看视频慕课网APP

相关分类

Go
我要回答