我们如何使用VB.NET Framework 4.0返回REST API中返回的对象的HTTP状态代码?
我已经用Google搜索了这个并找到了一些解决方案,例如在返回对象之前抛出错误,如下所示:
Public Function InfoAndTerms(ByVal Lang As String) As Information() Implements IService.InfoAndTerms
Dim result() As Information
Try
' Do something and fill result
Catch ex As Exception
Throw New System.Web.HttpException(500, "Error - InfoAndTerms")
Finally
InfoAndTerms = result
End Try
End Function
但在我的情况下,此功能始终返回状态400而不是500,我不知道原因。
如何解决此问题?还有其他办法吗?
答案 0 :(得分:0)
最后我找到了解决方案:
根据this link,我们只需要使用'WebFaultException'来改变http状态。现在还有一个很好的方法来返回处理的错误:
Public Function TestMethod2(ByVal name As String)As String Implements IService.TestMethod2
If name = "" Then
Dim str As New ErrMessage
str.intErr = 1
str.strErrMessage = "bla bla bla"
Throw New WebFaultException(Of ErrMessage)(str, HttpStatusCode.BadRequest)
End If
Return name
结束功能
此处返回的状态为400(尝试将错误请求更改为其他内容,您将看到返回状态num之间的差异)并且我个人更喜欢返回我创建的对象错误。