Я пытаюсь вызвать веб-сервис методом POST. Ввод xml - это сообщение с мылом rpc/literal.Удаленный сервер возвратил ошибку 500 - Ошибка при вызове soap webservice
Dim myRequest As Net.HttpWebRequest
Dim objResponse As Net.HttpWebResponse
Dim result As String
Dim data As Byte()
Dim newStream As System.IO.Stream
Dim strURL As String = "https://abxxxx"
strXml.Load("D:\MyXml.xml")
data = System.Text.Encoding.ASCII.GetBytes(strXml.InnerXml)
myRequest = WebRequest.Create(strURL)
myRequest.Method = "POST"
myRequest.ContentType = "application/x-www-form-urlencoded"
myRequest.ContentLength = data.Length
myRequest.Timeout = 125000
newStream = myRequest.GetRequestStream()
newStream.Write(data, 0, data.Length)
newStream.Close()
objResponse = myRequest.GetResponse()
Dim sr As IO.StreamReader = New IO.StreamReader(objResponse.GetResponseStream())
strOutput = sr.ReadToEnd()
'Close connections
sr.Close()
objResponse.Close()
код генерирует исключение «Удаленный сервер возвратил ошибку: 500» на линии objResponse = myRequest.GetResponse()
Это фактический ответ мыло от веб-сервиса:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Unmarshalling Error: unexpected element (uri:"", local:"CONTACT"). Expected elements are (none) </faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Это прекрасно работает когда я добавляю ссылку на эту веб-службу с помощью visual studio (прокси-класса), но мне не нужно использовать этот метод.
Пожалуйста, предложите, если я что-то упустил!
Не используйте WebRequest/WebResponse. Se "[Как использовать веб-службу] (https://johnwsaunders3.wordpress.com/2009/05/17/how-to-consume-a-web-service/)" –
Я использую .NET 2.0 и нуждаюсь для вызова этой веб-службы из кода на стороне сервера. –
Итак, используйте «Добавить веб-ссылку». Кроме того, .NET 2.0 - это что? Десятилетие? У вас не должно быть конкурентов. –