diff --git a/OpenMetaverse.Http/CapsClient.cs b/OpenMetaverse.Http/CapsClient.cs index 7ba0f049..3c3c2f73 100644 --- a/OpenMetaverse.Http/CapsClient.cs +++ b/OpenMetaverse.Http/CapsClient.cs @@ -78,6 +78,19 @@ namespace OpenMetaverse.Http BeginGetResponse(postData, null); } + public void BeginGetResponse(OSD data, bool json) + { + if (json) + { + byte[] postData = System.Text.Encoding.UTF8.GetBytes(OSDParser.SerializeJsonString(data)); + BeginGetResponse(postData, "application/json"); + } + else + { + BeginGetResponse(data); + } + } + public void BeginGetResponse(byte[] postData) { BeginGetResponse(postData, null); @@ -129,6 +142,16 @@ namespace OpenMetaverse.Http return response; } + public OSD GetResponse(OSD data, bool json, int millisecondsTimeout) + { + OSD response = null; + AutoResetEvent waitEvent = new AutoResetEvent(false); + OnComplete += delegate(CapsClient client, OSD result, Exception error) { response = result; waitEvent.Set(); }; + BeginGetResponse(data, json); + waitEvent.WaitOne(millisecondsTimeout, false); + return response; + } + public OSD GetResponse(byte[] postData, int millisecondsTimeout) { OSD response = null; @@ -181,7 +204,7 @@ namespace OpenMetaverse.Http { if (e.Error == null) { - OSD result = OSDParser.DeserializeLLSDXml(e.Result); + OSD result = OSDParser.Deserialize(e.Result); try { OnComplete(this, result, e.Error); } catch (Exception ex) { Logger.Log.Error(ex.Message, ex); }