Link to home
Start Free TrialLog in
Avatar of Mikal613
Mikal613Flag for United States of America

asked on

Send XML Read Xml ASP Page

I have an ASP Page

Visual Studio 2005, CF2 , C#

When i call my website i have to send a bunch of XML nodes , Probably coming from an exe (VS 2005 C#).

How do i do I send the XML and how does my Web Page Read the XML?


Avatar of YZlat
YZlat
Flag of United States of America image

send to where? read from where?
Avatar of Mikal613

ASKER

Heres the scenario

on 69.23.23.23 i have a webPage  Default.aspx

I wanna send parameters FROM 213.345.234.122 to 69.23.23.23 and it will populate the info based on the parameters.

Avatar of Member_2_3718378
Member_2_3718378

Mikal613 --

I just want to make sure I understand your question:

1) You have a Classic ASP page that needs to send some XML-formatted data to another website, and then interpret the XML that is returned.
2) The website that you are trying to communicate with, which is receiving the data and returning output, is running ASP.NET / C# (Visual Studio 2005).

Please tell us if this is accurate or not, so we can better assist you.


-= DeathToSpam =-
1)Its a desktop App that will call the web page like

69.23.23.23\MyWebPage\Default.aspx?Id=23,23,23Name=45,45,45,45

and then my webpage some how should retrieve the Id's and Names

Pref using XML


You will want to use the HttpWebRequest and HttpWebResponse classes to create a proxy that can read the uri streams (which, of course, will be in XML format).

The request (calling function) will look something like:



   byte[] buff = System.Text.Encoding.ASCII.GetBytes(myXML);

   HttpWebRequest myHttpRequest = (HttpWebRequest)HttpWebRequest.Create(<URL>);
   myHttpRequest.Method = "POST";
   myHttpRequest.KeepAlive = false;
   myHttpRequest.ContentType = "application/x-www-form-urlencoded";
   myHttpRequest.ContentLength = buff.Length;
   NetworkCredential cred = new NetworkCredential("user","password","myDomain");;
   CredentialCache credCache = new CredentialCache();
   credCache.Add(new Uri(serviceURI), "Basic", cred);
   myHttpRequest.Credentials = credCache;
   myHttpRequest.Timeout = 30000;
           
   HttpWebResponse myHttpResponse = null;
   string response = string.Empty;

   Stream myRequestStream = null;
   Stream baseStream = null;
   try
   {
         myRequestStream = myHttpRequest.GetRequestStream();
         myRequestStream.Write(buff,0,buff.Length);   // Sends the XML to web page - waits for response
                   
         myHttpResponse = (HttpWebResponse)myHttpRequest.GetResponse();  //  reads the response
         baseStream = myHttpResponse.GetResponseStream();
         
         XmlTextReader xmlRdr = new XmlTextReader(baseStream);
               
         xmlRdr.MoveToContent();
         response = HttpUtility.HtmlDecode(xmlRdr.ReadInnerXml());
   }



You will want to use the HttpWebRequest and HttpWebResponse classes to create a proxy that can read the uri streams (which, of course, will be in XML format).

The request (calling function) will look something like:



   byte[] buff = System.Text.Encoding.ASCII.GetBytes(myXML);

   HttpWebRequest myHttpRequest = (HttpWebRequest)HttpWebRequest.Create(<URL>);
   myHttpRequest.Method = "POST";
   myHttpRequest.KeepAlive = false;
   myHttpRequest.ContentType = "application/x-www-form-urlencoded";
   myHttpRequest.ContentLength = buff.Length;
   NetworkCredential cred = new NetworkCredential("user","password","myDomain");;
   CredentialCache credCache = new CredentialCache();
   credCache.Add(new Uri(serviceURI), "Basic", cred);
   myHttpRequest.Credentials = credCache;
   myHttpRequest.Timeout = 30000;
           
   HttpWebResponse myHttpResponse = null;
   string response = string.Empty;

   Stream myRequestStream = null;
   Stream baseStream = null;
   try
   {
         myRequestStream = myHttpRequest.GetRequestStream();
         myRequestStream.Write(buff,0,buff.Length);   // Sends the XML to web page - waits for response
                   
         myHttpResponse = (HttpWebResponse)myHttpRequest.GetResponse();  //  reads the response
         baseStream = myHttpResponse.GetResponseStream();
         
         XmlTextReader xmlRdr = new XmlTextReader(baseStream);
               
         xmlRdr.MoveToContent();
         response = HttpUtility.HtmlDecode(xmlRdr.ReadInnerXml());
   }

ASKER CERTIFIED SOLUTION
Avatar of _TAD_
_TAD_

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial