Call Web Service using HTTPWebRequest

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

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top