Вернуть код состояния HTTP с помощью REST API

Как мы возвращаем код состояния HTTP с объектом, возвращенным в REST API с использованием VB.NET Framework 4.0?

Я прогуглил это и нашел некоторые решения, такие как выдача ошибки перед возвратом объекта, как показано ниже:

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, и я не знаю почему.

Как мне исправить эту проблему? Есть ли другой способ сделать это?

2 ответа

Наконец я нашел решение:

По этой ссылке мы просто должны использовать "WebFaultException", который изменит статус http. Теперь есть также хороший метод для возврата обработанной ошибки:

Открытая функция TestMethod2(ByVal name As String) As String Реализует 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), и лично я предпочитаю возвращать объект Error, который я создал.

Если вы используете System.Net

      Dim statsText As String = httpResponse.StatusCode
MsgBox(statsText)
Другие вопросы по тегам