what's wrong with xml post code?

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()
 
C

Cor Ligthert[MVP]

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
 
C

Cindy H

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.
 
C

Cindy H

I'm using xmlreader, not a xmltextreader and moved it to .net 2.0, but still
no luck.
 
C

Cindy H

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.
 

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