#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?