Call Web Service using HTTPWebRequest

Discussion in 'ASP .Net Web Services' started by hharry, Dec 9, 2005.

  1. hharry

    hharry Guest

    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!
     
    hharry, Dec 9, 2005
    #1
    1. Advertising

  2. hharry

    hharry Guest

    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".
     
    hharry, Dec 12, 2005
    #2
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Michael Averstegge
    Replies:
    0
    Views:
    4,323
    Michael Averstegge
    Jan 10, 2006
  2. Not Me
    Replies:
    1
    Views:
    3,227
    Not Me
    Jun 5, 2007
  3. RJ
    Replies:
    4
    Views:
    820
    Brock Allen
    Sep 22, 2005
  4. hharry

    consume web service using httpwebrequest

    hharry, Jul 13, 2006, in forum: ASP .Net Web Services
    Replies:
    0
    Views:
    260
    hharry
    Jul 13, 2006
  5. Redhot
    Replies:
    0
    Views:
    784
    Redhot
    Jul 18, 2009
Loading...

Share This Page