我想返回一个HTTP状态代码&来自ApiController的PUT方法的错误消息。
我创建了一个错误类:
func main() {
myFunc()
fmt.Print(&buf)
}
func myFunc() {
defer func() {
if r := recover(); r != nil {
logger.Println("Recovered from panic: ", r)
}
}()
myPanic()
}
func myPanic() {
panic("Panicking in myPanic")
}
在Put方法中我返回:
public class ErrorInformation
{
public string Message { get; set; }
public DateTime ErrorDate { get; set; }
}
当状态代码为时,请说:
return new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.NotModified,
new ErrorInformation { Message = "We apologize but an unexpected error occured. Please try again later.", ErrorDate = DateTime.UtcNow }));
或HttpStatusCode.OK
- 调用者获取响应中的对象。但是当它是HttpStatusCode.InternalServerError
时 - 只返回状态代码。
为什么这样 - 以及如何确保始终返回我的对象和状态代码?
THX。
答案 0 :(得分:4)
根据HTTP规范,304“未修改”的响应不允许有响应正文:
304响应绝不能包含消息体,因此总是在头字段后面的第一个空行终止。
来源:https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5
答案 1 :(得分:0)
除了@crates_barrels的答案之外,我应该认为它对我来说肯定是Internal Server Error
。如果您遇到某种冲突,那么您可以在此处使用特殊的Conflict
响应。因此,我建议您检查状态代码及其使用方式,例如:在wiki。然后,您可以尝试以最佳方式应用它们。