如何从Web表单请求返回HTTP 400 - 错误请求错误?
主题几乎说明了一切。我有一个EstateReport Web窗体,必须使用EstateId请求参数调用。我想返回一个合适的HTTP错误,这个参数我们不存在。我如何返回HTTP错误400作为我的回应?如何从Web表单请求返回HTTP 400 - 错误请求错误?
在一个切线,我应该返回一个错误,如果需要的参数不存在,这是我的感觉是比较正确的,或重定向到搜索页的报告,这是对用户更友好?
左右。 400是一个错误的请求,虽然我理解你的想法,规范指出:
“由于格式错误,服务器无法理解请求,客户端不应该不加修改地重复请求。
从最纯粹的意义上讲,如果有人要求说“EstateReport.aspx”没有参数,服务器仍然可以解释并回复一个适当的响应,所以它不是最广泛意义上的“不良请求”。
我会建议你检测缺少参数,并通过链接呈现相应的错误消息,通过某种方式选择合适的“estateId”,因此当需要EstateReport时,参数为当下。
更改HttpResponse.Status财产。
详情:http://msdn.microsoft.com/en-us/library/system.web.httpresponse.status(v=vs.71).aspx
,您可以:
throw New HttpException(400, "Bad Request");
或
Response.StatusCode = 400;
Response.End();
,但我有同样的想法如下KD7 - 为什么不显示,让他们知道什么是错的错误信息到客户端?被机器要求
最好避免Response.End()。 http://*.com/a/11505401/991267 –
感谢输入@ KD7,但我也在考虑该报告的网址,这样的错误信息应该是机器可读和状态代码是机器可读的。 – ProfK
啊,我明白了......我只是认为人类会通过浏览器请求页面。 – kd7
到目前为止,这将是只有人类,但我经常会犯思维超前太多。 :-)很可能是服务请求报告,然后将它的PDF版本发布给订阅者。我不希望他们全部通过电子邮件发送PDF格式的错误消息。 – ProfK