当前位置: 首页 > 知识库问答 >
问题:

通过头错误代码返回或JSON响应终止http请求

尉迟国发
2023-03-14

如何从HandleFunc调用多个错误返回函数?

我在这个链接中找到了类似于我需要的东西:Golang:终止或中止HTTP请求。

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
   // examine incoming params
   if !ok {
   http.Error(w, `Invalid input params!`, http.StatusBadRequest) 
   return
          }

   // Do normal API serving
})
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    // examine incoming params
    if !ok {
        w.Header().Set("Content-Type", "application/json")
        w.WriteHeader(http.StatusBadRequest)
        str := `{"Result":"","Error":"No valide Var"}`
        fmt.Fprint(w, str)
        return
    }

    // Do normal API serving
})
 if isJsonError {
    //call HTTP function to serve JSON error
   }
 if isHTTPError {
   //call HTTP function to serve an HTTP error
}

附注:我还读过以下博客帖子:http://blog.golang.org/error-handling-and-go

那里有一个部分叫做“简化重复性错误处理”--这很酷,但我需要简化多个重复性错误处理,我不知道怎么做。

共有1个答案

范京
2023-03-14

类似于这样:

func badReq(w http.ResponseWriter, isJson bool, err string) {
    if !isJson {
        http.Error(w, err, http.StatusBadRequest)
        return
    }
    w.Header().Set("Content-Type", "application/json")
    w.WriteHeader(http.StatusBadRequest)
    fmt.Fprintf(w, `{"result":"","error":%q}`, err)
}



http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    if !ok {
        badReq(w, true, "no valid var")
        return
    }
})
 类似资料:
  • 我对Spring很陌生。我有一个在Spring中编写的REST api,但我不知道如何使用自定义http响应代码返回JSON响应。 我返回一个JSON响应,如下所示: 但它总是显示200个http ok状态代码。 如何可能在void函数中返回JSON响应和自定义HTTP代码?

  • 问题内容: Iam尝试对https URL进行身份验证,但Iam出现异常。下面是代码。 例外情况: 请任何人建议如何解决此问题。 问题答案: 401错误代码表示“未经授权”。我相信您的代码无法正确编码Authentication标头。假设服务器需要 基本访问身份验证, 则代码应如下所示: RFC 2617 中提供了HTTP基本和摘要身份验证方案的全面描述

  • 问题内容: 通过某些错误消息中止我的 API 服务的方式是什么? 链接致电我的服务: 要给我的服务打电话,客户需要发送一个Json和一些参数。 我想测试我获得的参数是否正确,否则,我想发送一条错误消息。 响应应为Json代码 我尝试过,他们停止了服务,而不仅仅是通话请求。中止通话,但阻止我发送这是我的错误消息。 我读了一些有关 恐慌,推迟,恢复的信息, 但我真的不知道如何使用它们来解决此问题。 作

  • 调用我的服务的链接: 要调用我的服务,客户机需要发送一个Json和一些params。 我想测试我得到的参数是否正确,如果不正确,我想发送一条错误消息。 我尝试了和,它们停止服务,而不仅仅是调用请求。中止调用,但它阻止我发送,这是我的错误消息。 我读过一些关于恐慌、延迟、恢复的东西,但我真的不知道如何使用它们来解决这个问题。 工作: 但我只能在main函数中使用它,因为在其他函数中,它只退出func

  • 我使用curl获取http头以查找http状态代码并返回响应。我使用以下命令获取http头

  • 问题内容: 我试图从桌面应用程序连接到URL,但出现问题标题中指示的错误,但是当我尝试从servlet连接到同一URL时,一切正常。当我从浏览器加载URL时,一切正常。我在servlet中使用相同的代码。该代码在库中,当它不起作用时,我将代码拉到当前项目中的类中,但它不起作用。 网址https://graph.facebook.com/me。 代码片段。 我在这里有些困惑,是否存在某种不是普通桌面