From b3d29aaeb3816fdb963a038a2df840a69ccd21e8 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sat, 9 May 2009 04:03:32 +0000 Subject: Make remote assets work through the new server system --- .../HttpServer/SynchronousRestObjectPoster.cs | 46 ++++++++++++++-------- 1 file changed, 29 insertions(+), 17 deletions(-) (limited to 'OpenSim/Framework/Servers/HttpServer/SynchronousRestObjectPoster.cs') diff --git a/OpenSim/Framework/Servers/HttpServer/SynchronousRestObjectPoster.cs b/OpenSim/Framework/Servers/HttpServer/SynchronousRestObjectPoster.cs index b754c36..71e5b69 100644 --- a/OpenSim/Framework/Servers/HttpServer/SynchronousRestObjectPoster.cs +++ b/OpenSim/Framework/Servers/HttpServer/SynchronousRestObjectPoster.cs @@ -52,30 +52,42 @@ namespace OpenSim.Framework.Servers.HttpServer WebRequest request = WebRequest.Create(requestUrl); request.Method = verb; - request.ContentType = "text/xml"; - MemoryStream buffer = new MemoryStream(); + if (verb == "POST") + { + request.ContentType = "text/xml"; - XmlWriterSettings settings = new XmlWriterSettings(); - settings.Encoding = Encoding.UTF8; + MemoryStream buffer = new MemoryStream(); - using (XmlWriter writer = XmlWriter.Create(buffer, settings)) - { - XmlSerializer serializer = new XmlSerializer(type); - serializer.Serialize(writer, obj); - writer.Flush(); - } + 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; + int length = (int) buffer.Length; + request.ContentLength = length; + + Stream requestStream = request.GetRequestStream(); + requestStream.Write(buffer.ToArray(), 0, length); + } - Stream requestStream = request.GetRequestStream(); - requestStream.Write(buffer.ToArray(), 0, length); TResponse deserial = default(TResponse); - using (WebResponse resp = request.GetResponse()) + try + { + using (WebResponse resp = request.GetResponse()) + { + XmlSerializer deserializer = new XmlSerializer(typeof (TResponse)); + deserial = (TResponse) deserializer.Deserialize(resp.GetResponseStream()); + } + } + catch (System.InvalidOperationException) { - XmlSerializer deserializer = new XmlSerializer(typeof (TResponse)); - deserial = (TResponse) deserializer.Deserialize(resp.GetResponseStream()); + // This is what happens when there is invalid XML } return deserial; } -- cgit v1.1