如何从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
那里有一个部分叫做“简化重复性错误处理”--这很酷,但我需要简化多个重复性错误处理,我不知道怎么做。
类似于这样:
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。 代码片段。 我在这里有些困惑,是否存在某种不是普通桌面