使用REST API返回HTTP状态代码

时间:2017-06-12 12:47:20

标签: vb.net rest httpresponse http-status-codes

我们如何使用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,我不知道原因。

如何解决此问题?还有其他办法吗?

1 个答案:

答案 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之间的差异)并且我个人更喜欢返回我创建的对象错误。