Call Web Service using HTTPWebRequest object

H

hharry

Hi All,


I have asimple web service:


<WebMethod()> _
Public Function ReSample(ByVal sInput As Integer) As String


Return sInput * 5


End Function


I am trying to call this service from a second service by sending a
soap message using the HTTPWebRequest object.


Public Function CallReSample(ByVal y As Integer) As String


Dim SoapEnv As String = ""
Dim url As String =
"http://localhost/AcxiomRequest/Service1.asmx/ReSample"
Dim result As String = ""
Dim myWriter As StreamWriter


SoapEnv = "" & _
"<soap:Envelope" & _
" xmlns:xsi=" + Chr(34) +
"http://www.w3.org/2001/XMLSchema-instance" + Chr(34) & _
" xmlns:xsd=" + Chr(34) +
"http://www.w3.org/2001/XMLSchema" + Chr(34) & _
" xmlns:soap=" + Chr(34) +
"http://schemas.xmlsoap.org/soap/envelope/" + Chr(34) + ">" & _
" <soap:Body>" & _
" <ReSample xmlns:m=" + Chr(34) +
"http://tempuri.org/message/" + Chr(34) + ">" & _
"<sInput>50</sInput>" & _
" </ReSample>" & _
" </soap:Body>" & _
" </soap:Envelope>"


Dim objRequest As HttpWebRequest = WebRequest.Create(url)


If Not objRequest Is Nothing Then
objRequest.Method = "POST"
objRequest.ContentLength = SoapEnv.Length
objRequest.ContentType =
"application/x-www-form-urlencoded"


objRequest.Headers.Add("SOAPAction", "ReSample")


myWriter = New StreamWriter(objRequest.GetRequestStream())
myWriter.Write(SoapEnv)


If Not myWriter Is Nothing Then
myWriter.Close()
End If


Dim objResponse As HttpWebResponse
Dim esr As StreamReader


Try
objResponse = objRequest.GetResponse()
Catch ex As WebException 'Exception
esr = New StreamReader(ex.Response.GetResponseStream())

result = esr.ReadToEnd()
Catch ex As Exception


End Try


Dim sr As StreamReader
sr = New StreamReader(objResponse.GetResponseStream())
result = sr.ReadToEnd()
sr.Close()


objResponse.Close()
sr.Close()
objResponse = Nothing
sr = Nothing
objRequest.Abort()
End If


objRequest = Nothing
myWriter = Nothing


End Function


////////////////////////////////////////////////////////////////////////



I keep getting the following error:


System.InvalidOperationException: Missing parameter: sInput.


I'm not sure how to include a parameter in the soap envelope.


Pointers appreciated


Thanks in advance!
 
H

hharry

Figured it out.

Did not have the correct namespace for the service and the content type
is "text/xml; charset=utf-8" as opposed to
"application/x-www-form-urlencoded".
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top