2011-01-01, 04:57
Here's my example in .NET:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Web;
using System.Web.Script.Serialization;
namespace XBMCLib
{
public class XBMCHelper
{
private static string _ServerName = "http://localhost:9091/jsonrpc";
private static string PostCommand(string istrCommand)
{
byte[] byteArray = Encoding.ASCII.GetBytes(istrCommand);
WebRequest wreq = WebRequest.Create(_ServerName);
wreq.Method = "POST";
wreq.ContentLength = byteArray.Length;
wreq.ContentType = "application/x-www-form-urlencoded";
Stream dataStream = wreq.GetRequestStream ();
dataStream.Write (byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse wresp = wreq.GetResponse();
dataStream = wresp.GetResponseStream();
StreamReader reader = new StreamReader (dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
wresp.Close();
return responseFromServer.Replace(" ", " ");
}
protected struct PingResp
{
public string id;
public string jsonrpc;
public string result;
}
public static bool XBMCPing()
{
PingResp res;
string cmd = "{\"jsonrpc\": \"2.0\", \"method\": \"JSONRPC.Ping\", \"id\": \"1\"}";
JavaScriptSerializer ser = new JavaScriptSerializer();
res = ser.Deserialize<PingResp>(PostCommand(cmd));
return res.result == "pong";
}
}
}