Added CapsClient overloads that can send JSON data

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2637 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
John Hurliman
2009-04-20 23:41:34 +00:00
parent c5b8ccf211
commit 3497eed168

View File

@@ -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); }