Vb.net 使用RESTAPI返回HTTP状态代码
如何使用VB.NET Framework 4.0返回REST API中返回的对象的HTTP状态代码 我在谷歌上搜索了一下,找到了一些解决方案,比如在返回对象之前抛出错误,如下所示:Vb.net 使用RESTAPI返回HTTP状态代码,vb.net,rest,httpresponse,http-status-codes,Vb.net,Rest,Httpresponse,Http Status Codes,如何使用VB.NET Framework 4.0返回REST API中返回的对象的HTTP状态代码 我在谷歌上搜索了一下,找到了一些解决方案,比如在返回对象之前抛出错误,如下所示: Public Function InfoAndTerms(ByVal Lang As String) As Information() Implements IService.InfoAndTerms Dim result() As Information Try ' Do something an
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,我不知道为什么
如何解决此问题?还有其他方法吗?最后我找到了一个解决方案: 根据我们的经验,我们只需要使用“WebFaultException”,它将更改http状态。现在还有一个很好的方法返回已处理的错误: 公共函数TestMethod2(ByVal名称作为字符串)作为字符串实现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之间的差异),我个人更喜欢返回我创建的对象错误。您是否尝试捕获
HttpException
并询问内部异常?没有任何示例吗?为什么他们没有在其他模板中捕捉到它呢?我不能说为什么它没有在其他模板中引起异常(??)。简单地说,您正在与服务器通信,它知道您正在与它通信,但它无法理解您的请求,因此出现了400异常。捕获异常应提供有关导致问题的原因的更多信息。但如果添加捕获,状态将变为200