what's wrong with xml post code?

  • Thread starter Thread starter CindyH
  • Start date Start date
C

CindyH

Hi
Trying to get this code to work for http xml post.
I need the post to be xml (doc.outerxml) sent in single key name as stream.
The following is the post code and code for receiving the request.
When it hits the "myresponse = myrequest.GetResponse()" in the post code -
I'm getting following error:
"The remote server returned an error: (500) Internal Server Error".
I don't know if I have something wrong with the post or receiving it on the
other end.
Right now I'm trying to write it in .net 1.1.
Any help will be greatly appreciated.
Thanks,
Cindy

Dim url As String = "http://someplace.aspx"
Dim myrequest As System.Net.WebRequest = Nothing
Dim myresponse As System.Net.WebResponse = Nothing
Try
' Create a request using a URL that can receive a post.
myrequest = System.Net.WebRequest.Create(url)
' Set the Method property of the request to POST.
myrequest.Method = "POST"
' Set the ContentType property of the WebRequest.
myrequest.ContentType = "application/x-www-form-urlencoded"
' Create POST data and convert it to a byte array.
Dim vxml = "Interface_2=" + HttpUtility.UrlEncode(Doc.OuterXml)
Dim byteArray As Byte() =
System.Text.Encoding.UTF8.GetBytes(vxml)
' Set the ContentLength property of the WebRequest.
myrequest.ContentLength = byteArray.Length
' Get the request stream.
Dim dataStream As System.io.Stream =
myrequest.GetRequestStream()
' Write the data to the request stream.
dataStream.Write(byteArray, 0, byteArray.Length)
' Close the Stream object.
dataStream.Close()
' Get the response.
myresponse = myrequest.GetResponse() 'error occurs here
Catch ex As Exception
Throw ex
Finally
' Closed streams
If Not myrequest Is Nothing Then
myrequest.GetRequestStream().Close()
If Not myresponse Is Nothing Then
myresponse.GetResponseStream().Close()
End Try

Code for receiving the post:
Dim strReader As System.IO.StringReader = Nothing
Dim Reader As System.Xml.XmlTextReader = Nothing
Response.ContentType = "application/x-www-form-urlencoded"
Response.Clear()
Try
strReader = New
System.IO.StringReader(Request.Form("Interface_2"))
Reader = New System.Xml.XmlTextReader(strReader)
Do While Reader.Read()
 
Steve,

Good hit, however

In your case, I would stick with text on both ends.Can't you just write a
text stream on the request end?


What else binary over the Internet with Post, I never have seen that
working, but maybe I am wrong in this.
(As I see XML as well as text).


Cor
 
I did have it as text on both ends and worked fine, but then I found out I
needed to send it as
as single key word:
"Interface_2=" + HttpUtility.UrlEncode(Doc.OuterXml)
I'm not sure how to post this or receive it on other end.
 
I'll try it - thanks.


Steve Gerrard said:
Do you have to use streams? It sems to me that you could post it just as
you have it above, and on the receiving end, just retrieve it using
Request.Form("Interface_2"), assigning it directly to a string.
 
Back
Top