Вызов службы RESTful с использованием VB.NET

#asp.net #vb.net

#asp.net #vb.net

Вопрос:

Я использую следующий код для вызова службы RESTful:

     Public Function InvokeService(ByVal RESTServiceURI As String, ByVal RequestMethod As String, ByVal SOAPAction As String, ByVal HTTPHeaderContentType As String, ByVal HTTPHeaderAccept As String, ByVal RequestData As String, ByVal NetworkCredentialUsername As String, ByVal NetworkCredentialPassword As String) As String

    Dim RESTResponse As String = ""

    Try

        Dim RESTRequest As HttpWebRequest = CType(WebRequest.Create(RESTServiceURI), HttpWebRequest)

        If NetworkCredentialUsername <> "" And NetworkCredentialPassword <> "" Then
            Dim objCredential As New Net.NetworkCredential(NetworkCredentialUsername, NetworkCredentialPassword)
            RESTRequest.Credentials = objCredential
        End If

        RESTRequest.Headers.Add("SOAPAction", SOAPAction)

        RESTRequest.Accept = HTTPHeaderAccept
        RESTRequest.Method = RequestMethod

        If RequestMethod = "POST" Or RequestMethod = "PUT" Then

            RESTRequest.ContentType = HTTPHeaderContentType
            RESTRequest.ContentLength = RequestData.Length

            Using RS As Stream = RESTRequest.GetRequestStream
                Using SW As StreamWriter = New StreamWriter(RS)
                    SW.Write(RequestData)
                End Using
            End Using

        End If

        Using Serviceres As WebResponse = RESTRequest.GetResponse()

            Using rd As StreamReader = New StreamReader(Serviceres.GetResponseStream())
                RESTResponse = rd.ReadToEnd()
            End Using

        End Using

    Catch ex As Exception
        RESTResponse = ex.Message
    End Try

    Return RESTResponse

End Function
  

Но я не знаю, должен ли он использовать следующие строки кода:

 RESTRequest.Headers.Add("SOAPAction", SOAPAction)
RESTRequest.Accept = HTTPHeaderAccept
  

Пожалуйста, помогите, мне нужна эта функция, чтобы иметь возможность вызывать любую службу RESTful.
Требуется ли какое-либо улучшение для вызова какой-либо службы RESTful?

Комментарии:

1. Не было бы очевидной вещи, которую нужно попробовать, это опустить эти две строки и посмотреть, получите ли вы ожидаемые результаты? SOAPAction, по крайней мере, выглядит как пользовательское свойство заголовка, поэтому я бы предположил, что это зависит от конкретной реализации.

2. Но у службы REST есть заголовок SOAPAction?