Я пытаюсь вызвать веб-сервис в vb.net, и я следую за этой цепочкой: WebService. Отправка SOAP-запроса и получение ответа с использованием Visual Basic
. Это шаги, которые яследуют:
- Я уже добавил ссылку на проект (http://webservice_url? wsdl ).
Я написал запрос на мыло вручную в xml-файл ( Я прикрепляю xml-файл как изображение здесь )
Iзагрузите XML-файл в строковую переменную и вызовите веб-сервис следующим образом:
Dim strDocumentoSoap As String
Dim document As XDocument = XDocument.Load("C:\myFile.xml")
strDocumentoSoap = document.ToString
Dim servicioWeb As svc.v79jIntegracionPerfilSesion = New svc.v79jIntegracionPerfilSesion
Dim sbLogin As New System.Text.StringBuilder
sbLogin.Append(strDocumentoSoap)
Dim hwrequest As System.Net.HttpWebRequest
hwrequest = System.Net.WebRequest.Create("http://myServiceURL/realizarPeticionPublicacionOSBUS?WSDL")
hwrequest.Method = "POST"
hwrequest.ContentType = "text/xml; charset=utf-8"
Dim byteData As Byte() = System.Text.Encoding.UTF8.GetBytes(sbLogin.ToString())
hwrequest.ContentLength = byteData.Length
Dim writer As Stream = hwrequest.GetRequestStream
writer.Write(byteData, 0, byteData.Length)
writer.Close()
Dim Response As System.Net.HttpWebResponse
Response = hwrequest.GetResponse
Dim responseStatus As String = Response.StatusDescription.ToString
Dim DataStream As Stream
Dim Reader As StreamReader
DataStream = Response.GetResponseStream()
Reader = New StreamReader(DataStream)
Dim SD2Request As String = Reader.ReadToEnd()
'SHOW THE RESPONSE INTO MSGBOX
MsgBox(SD2Request)
Это прекрасно работает, но я прочитал в интернете, что эта практика не рекомендуется (XML, созданный вручную для SOAP), потому что в .net есть и другие полезные инструменты.
Может кто-нибудь объяснить мне другие варианты или библиотеки для создания запроса мыла в VB.NET без создания мыльного конверта вручную.
Заранее большое спасибо!
Марга