Revision: 33643
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at October 11, 2010 20:28 by dzr_gregory
Initial Code
/// <summary> /// Execute XML-RPC request and returns XML response as string /// </summary> /// <param name="uri">URL for request, for examle: "http://snipplr.com/xml-rpc.php"</param> /// <param name="methodName">Name of method to be called, for example: snippet.list</param> /// <param name="parameters">Optional parameters for the method. /// Can be null or must have members of following types: short, int, bool, double, string, DateTime /// </param> /// <returns>String than contains XML response of method</returns> public static string XmlRpcExecMethod(string uri, string methodName, List<Object> parameters) { var req = (HttpWebRequest)WebRequest.Create(uri); req.Method = "POST"; var genParams = ""; if (parameters != null && parameters.Count > 0) { foreach (var param in parameters) { if (param == null) continue; if (param.GetType().Equals(typeof (string))) { genParams += string.Format(@"<param><value><string>{0}</string></value></param>", param); } if (param.GetType().Equals(typeof(bool))) { genParams += string.Format(@"<param><value><boolean>{0}</boolean></value></param>", (bool)param ? 1 : 0); } if (param.GetType().Equals(typeof(double))) { genParams += string.Format(@"<param><value><double>{0}</double></value></param>", param); } if (param.GetType().Equals(typeof(int)) || param.GetType().Equals(typeof(short))) { genParams += string.Format(@"<param><value><int>{0}</int></value></param>", param); } if (param.GetType().Equals(typeof (DateTime))) { genParams += string.Format( @"<param><value><dateTime.iso8601>{0:yyyy}{0:MM}{0:dd}T{0:hh}:{0:mm}:{0:ss}</dateTime.iso8601></value></param>", param); } } } var command = @"<?xml version=""1.0""?><methodCall><methodName>" + methodName + @"</methodName><params>" + genParams + @"</params></methodCall>"; var bytes = Encoding.ASCII.GetBytes(command); req.ContentLength = bytes.Length; using (var stream = req.GetRequestStream()) { stream.Write(bytes, 0, bytes.Length); } using (var stream = new StreamReader(req.GetResponse().GetResponseStream())) { return stream.ReadToEnd(); } }
Initial URL
Initial Description
This method can execute XML-RPC call and return response. Can be useful for working with XML-RPC API's like Snipplr.com XML-RPC API and other
Initial Title
Execute XML-RPC call and return XML response as string
Initial Tags
xml, c
Initial Language
C#