From 91c2c3c096d4d70c7962ef7b9ad4264ca8875ec6 Mon Sep 17 00:00:00 2001 From: MW Date: Sat, 3 Nov 2007 14:04:59 +0000 Subject: testing different rest post method/class for Grid asset client. (possible that I haven't set the post url correctly) --- OpenSim/Framework/Servers/RestObjectPoster.cs | 49 +++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 OpenSim/Framework/Servers/RestObjectPoster.cs (limited to 'OpenSim/Framework/Servers') diff --git a/OpenSim/Framework/Servers/RestObjectPoster.cs b/OpenSim/Framework/Servers/RestObjectPoster.cs new file mode 100644 index 0000000..77660a0 --- /dev/null +++ b/OpenSim/Framework/Servers/RestObjectPoster.cs @@ -0,0 +1,49 @@ +using System; +using System.IO; +using System.Net; +using System.Text; +using System.Xml; +using System.Xml.Serialization; + + +namespace OpenSim.Framework.Servers +{ + public class RestObjectPoster + { + public static void BeginPostObject(string requestUrl, TRequest obj) + { + Type type = typeof(TRequest); + + WebRequest request = WebRequest.Create(requestUrl); + request.Method = "POST"; + request.ContentType = "text/xml"; + + MemoryStream buffer = new MemoryStream(); + + XmlWriterSettings settings = new XmlWriterSettings(); + settings.Encoding = Encoding.UTF8; + + using (XmlWriter writer = XmlWriter.Create(buffer, settings)) + { + XmlSerializer serializer = new XmlSerializer(type); + serializer.Serialize(writer, obj); + writer.Flush(); + } + + int length = (int)buffer.Length; + request.ContentLength = length; + + Stream requestStream = request.GetRequestStream(); + requestStream.Write(buffer.ToArray(), 0, length); + IAsyncResult result = request.BeginGetResponse(AsyncCallback, request); + } + + private static void AsyncCallback(IAsyncResult result) + { + WebRequest request = (WebRequest)result.AsyncState; + using (WebResponse resp = request.EndGetResponse(result)) + { + } + } + } +} \ No newline at end of file -- cgit v1.1