RPCclient.cs ******************************************* using System; using System.IO; using System.Net; using System.Text; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace JsonRPCclient { public class JsonRPCclient { private int id = 0; /// /// Set JSON-RPC webservice URL /// public string URL { set; get; } /// /// Set JSON-RPC method /// public string Method { set; get; } /// /// Add JSON-RPC params /// public JObject Parameters { set; get; } /// /// Results of the request /// public JsonRPCresponse Response { set; get; } /// /// Create a new object of RPCclient /// public JsonRPCclient() { Parameters = new JObject(); Response = null; } /// /// Create a new object of RPCclient /// /// public JsonRPCclient(string URL) { this.URL = URL; Parameters = new JObject(); Response = null; } /// /// POST the request and returns server response /// /// public string Post() { try { JObject jobject = new JObject(); jobject.Add(new JProperty("jsonrpc", "2.0")); jobject.Add(new JProperty("id", ++id)); jobject.Add(new JProperty("method", Method)); jobject.Add(new JProperty("params", Parameters)); string PostData = JsonConvert.SerializeObject(jobject); UTF8Encoding encoding = new UTF8Encoding(); byte[] bytes = encoding.GetBytes(PostData); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.Method = "POST"; request.ContentType = "application/json"; request.KeepAlive = true; request.ContentLength = bytes.Length; Stream writeStream = request.GetRequestStream(); writeStream.Write(bytes, 0, bytes.Length); writeStream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8); Response = new JsonRPCresponse(); Response = JsonConvert.DeserializeObject(readStream.ReadToEnd()); Response.StatusCode = response.StatusCode; return Response.ToString(); } catch (Exception e) { return e.ToString(); } } public void ClearParameters() { this.Parameters = new JObject(); } } public class JsonRPCresponse { public int id { set; get; } public object result { set; get; } public string error { set; get; } public HttpStatusCode StatusCode { set; get; } public JsonRPCresponse() { } public override string ToString() { return "{\"id\":" + id.ToString() + ",\"result\":\"" + result.ToString() + "\",\"error\":" + error + ((String.IsNullOrEmpty(error)) ? "null" : "\"" + error + "\"") + "}"; } } } *********************** program.cs ******************************************* string Baseurl = "http://localhost/limesurvey/index.php/admin/remotecontrol"; JsonRPCclient client = new JsonRPCclient(Baseurl); client.Method = "get_session_key"; client.Parameters.Add("username", "admin"); client.Parameters.Add("password", "mypassword"); client.Post(); string SessionKey = client.Response.result.ToString(); client.ClearParameters(); if(client.Response.StatusCode == System.Net.HttpStatusCode.OK){ client.Method = "import_survey"; client.Parameters.Add("sSessionKey", SessionKey); client.Parameters.Add("sImportData", Base64Encode(yourImportDataString)); client.Parameters.Add("sImportDataType", "lss"); //client.Parameters.Add("sNewSurveyName", "test"); //client.Parameters.Add("DestSurveyID", 999333); client.Post(); } client.ClearParameters(); Console.WriteLine("new survey id:" + client.Response.result.ToString()); Console.ReadLine();