Ik wil een aspx pagina maken die van verschillende bronnen een xml bericht kan ontvangen.
In het xml bericht zullen acties beschreven staan die uitgevoerd moeten worden.
De huidige architectuur laat geen gebruik van webservices toe
Ik heb nu een winform test appje geschreven die een synchrone post maakt. (framework 1.1)
Bij de aspx pagina heb ik in de Page_Load staan:
Ik ben nu dus benieuwd naar de beste methode om zo'n dergelijke communicatie op te zetten. Nu post ik vanuit mijn winform de xml file, en wacht op reactie. Als ik nu de response uitlees, krijg ik de html output van de aspx pagina. Het lijkt me handiger om hier gewoon een soort boolean uit te kunnen lezen die zegt of het succesvol is of niet.
Maar moet ik dan vanuit de aspx pagina de response stream gaan bewerken of moet ik daar direct een apart bericht gaan terugsturen? Dat lijkt me toch niet echt de bedoeling....
(ik weet niet of het van toepassing is, maar het moet uiteindelijk ook gaan werken met a-synchrone communicatie)
ik hoop dat het duidelijk is!
In het xml bericht zullen acties beschreven staan die uitgevoerd moeten worden.
De huidige architectuur laat geen gebruik van webservices toe
Ik heb nu een winform test appje geschreven die een synchrone post maakt. (framework 1.1)
C#:
1
2
3
4
5
6
7
8
9
10
11
12
| HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(@"http://localhost/XMLReceiver/WebForm1.aspx"); httpRequest.Method = "POST"; httpRequest.ContentType = "text/xml"; FileStream fileStream = new FileStream("blub.xml", FileMode.Open, FileAccess.Read); byte[] requestBody = new byte[fileStream.Length]; fileStream.Read(requestBody, 0, (int)fileStream.Length); httpRequest.ContentLength = requestBody.Length; Stream requestStream = httpRequest.GetRequestStream(); requestStream.Write(requestBody, 0, requestBody.Length); requestStream.Close(); HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse(); label1.Text = new StreamReader(httpResponse.GetResponseStream()).ReadToEnd(); |
Bij de aspx pagina heb ik in de Page_Load staan:
C#:
1
2
3
4
5
6
7
8
| if(Request.InputStream.Length > 0) { XmlDocument postedXml = new XmlDocument(); postedXml.Load(Request.InputStream); string actie = postedXml.SelectSingleNode("//@testje").Value; //voer actie uit } |
Ik ben nu dus benieuwd naar de beste methode om zo'n dergelijke communicatie op te zetten. Nu post ik vanuit mijn winform de xml file, en wacht op reactie. Als ik nu de response uitlees, krijg ik de html output van de aspx pagina. Het lijkt me handiger om hier gewoon een soort boolean uit te kunnen lezen die zegt of het succesvol is of niet.
Maar moet ik dan vanuit de aspx pagina de response stream gaan bewerken of moet ik daar direct een apart bericht gaan terugsturen? Dat lijkt me toch niet echt de bedoeling....
(ik weet niet of het van toepassing is, maar het moet uiteindelijk ook gaan werken met a-synchrone communicatie)
ik hoop dat het duidelijk is!
offtopic:
het lukt me trouwens ook niet om een waarde uit het xml bericht te lezen. Het enige wat ik nog voor elkaar krijg is om het aantal nodes uit te lezen. Ik krijg alleen maar null values. Iemand een tipje?
het lukt me trouwens ook niet om een waarde uit het xml bericht te lezen. Het enige wat ik nog voor elkaar krijg is om het aantal nodes uit te lezen. Ik krijg alleen maar null values. Iemand een tipje?
[ Voor 3% gewijzigd door CaptBiele op 04-07-2006 13:47 ]