public void SerializeOneStringList() { var data = new System.Collections.Generic.List <string> { "one", "two", "three" }; var request = new XmlRpcRestRequest("some.method"); request.AddXmlRpcBody( data); var requestBody = request.RequestBody(); Assert.That( requestBody, Is.Not.Null, "The request body parameter could not be found"); if (requestBody == null) { return; } ValidateXml(requestBody); using (var sr = new StringReader(requestBody)) { var doc = new XPathDocument(sr); var nav = doc.CreateNavigator(); Assert.That( nav.Select("//methodCall/params/param/value/array/data/value").Count, Is.EqualTo(3), "There should be 3 parameters in the array"); } }
public DeletePostResponse SendDeletePostRequest(DeletePostRequest request) { DeletePostResponse response = new DeletePostResponse(); var rpcClient = new XmlRpcRestClient(config.RequestUrl); var rpcRequest = new XmlRpcRestRequest(request.RequestUrl) { Method = Method.POST }; // Add request parameters rpcRequest.AddXmlRpcBody(config.BlogID, config.Username, config.Password, request.PostId); try { // Get response var rpcResponse = rpcClient.Execute <RpcResponseValue <string> >(rpcRequest); // Find and fill members in response.Success = rpcResponse.Data.Value != "false"; } catch (Exception e) { Console.WriteLine(e); return(null); } return(response); }
public UploadFileResponse SendUploadFileRequest(UploadFileRequest request) { UploadFileResponse response = new UploadFileResponse(); var rpcClient = new XmlRpcRestClient(config.RequestUrl); var rpcRequest = new XmlRpcRestRequest(request.RequestUrl) { Method = Method.POST }; // Add request parameters //rpcRequest.XmlSerializer = new XmlRpcSerializer("",false); rpcRequest.AddXmlRpcBody(config.BlogID, config.Username, config.Password, request.FileRequestStruct, "true", "false"); try { // Get response var rpcResponse = rpcClient.Execute <RpcResponseValue <string> >(rpcRequest); // Find and fill members in XmlMemberSearcher searcher = new XmlMemberSearcher(rpcResponse.Content); response.FileResponseStruct.Id = Convert.ToInt32(searcher.GetValueOfMember("id")); response.FileResponseStruct.Url = searcher.GetValueOfMember("url"); response.FileResponseStruct.File = searcher.GetValueOfMember("file"); response.FileResponseStruct.FileType = searcher.GetValueOfMember("type"); } catch (Exception e) { Console.WriteLine(e); return(null); } return(response); }
public void SerializeNoArguments() { var request = new XmlRpcRestRequest("some.method"); request.AddXmlRpcBody( ); var requestBody = request.RequestBody(); Assert.That( requestBody, Is.Not.Null, "The request body parameter could not be found"); if (requestBody == null) { return; } ValidateXml(requestBody); using (var sr = new StringReader(requestBody)) { var doc = new XPathDocument(sr); var nav = doc.CreateNavigator(); Assert.That( nav.Select("//methodCall/params/param").Count, Is.EqualTo(0), "There should be 0 parameters"); } }
public GetMediaItemResponse SendMediaItemRequest(GetMediaItemRequest request) { GetMediaItemResponse response = new GetMediaItemResponse(); var rpcClient = new XmlRpcRestClient(config.RequestUrl); var rpcRequest = new XmlRpcRestRequest(request.RequestUrl) { Method = Method.POST }; // Add request parameters rpcRequest.AddXmlRpcBody(config.BlogID, config.Username, config.Password, request.Id); try { // Get response var rpcResponse = rpcClient.Execute <RpcResponseValue <string> >(rpcRequest); // Find and fill members in XmlMemberSearcher searcher = new XmlMemberSearcher(rpcResponse.Content); response.Link = searcher.GetValueOfMember("link"); } catch (Exception e) { Console.WriteLine(e); return(null); } return(response); }
public void SerializeArrayOfComplexStructs() { var data = new List <SerializeComplexStruct>() { new SerializeComplexStruct(true), new SerializeComplexStruct(true), new SerializeComplexStruct(true) }; var request = new XmlRpcRestRequest("some.method"); request.AddXmlRpcBody( data); var requestBody = request.RequestBody(); Assert.That( requestBody, Is.Not.Null, "The request body parameter could not be found"); if (requestBody == null) { return; } ValidateXml(requestBody); using (var sr = new StringReader(requestBody)) { var doc = new XPathDocument(sr); var nav = doc.CreateNavigator(); Assert.That( nav.Select("//methodCall/params/param").Count, Is.EqualTo(1), "There should be 1 param"); } }
public static string RequestBody(this XmlRpcRestRequest request) { var requestBody = request .Parameters .SingleOrDefault(x => x.Type == ParameterType.RequestBody) ?.Value ?.ToString(); return(requestBody); }
public void WordPressHelloWorld() { var rpcClient = new XmlRpcRestClient("https://wordpress.com/xmlrpc.php"); var sayHelloRequest = new XmlRpcRestRequest("demo.sayHello"); sayHelloRequest.AddXmlRpcBody(); var helloResponse = rpcClient.Execute <RpcResponseValue <string> >(sayHelloRequest); Assert.AreEqual("Hello!", helloResponse.Data.Value); }
/// <summary> /// Prints the content of the rpc request for debugging purposes /// </summary> /// <param name="rpcRequest"></param> private static void PrintRpcRequest(XmlRpcRestRequest rpcRequest) { var sb = new StringBuilder(); foreach (var param in rpcRequest.Parameters) { sb.AppendFormat("{0}: {1}\r\n", param.Name, param.Value); } Console.Write(sb.ToString()); Console.Read(); }
public void WordPressAddTwoNumbers() { var rpcClient = new XmlRpcRestClient("https://wordpress.com/xmlrpc.php"); var addTwoNumbersRequest = new XmlRpcRestRequest("demo.addTwoNumbers "); addTwoNumbersRequest.AddXmlRpcBody(100, 88); var addTwoNumbersResponse = rpcClient.Execute <RpcResponseValue <int> >(addTwoNumbersRequest); var sum = addTwoNumbersResponse.Data.Value; Assert.AreEqual(188, addTwoNumbersResponse.Data.Value); }
public void WordPressFault() { var rpcClient = new XmlRpcRestClient("https://wordpress.com/xmlrpc.php"); var faultRequest = new XmlRpcRestRequest("demo.fault "); faultRequest.AddXmlRpcBody( ); var response = rpcClient.Execute <RpcResponseValue <string> >(faultRequest); Assert.IsInstanceOf(typeof(XmlRpcFaultException), response.ErrorException); Assert.AreEqual(-32601, (( XmlRpcFaultException )response.ErrorException).FaultCode); }
public void SerializeOneStringArray() { var request = new XmlRpcRestRequest("some.method", true); var data = new[] { "one", "two", "three" }; request.AddXmlRpcBody("", data); var requestBody = request.RequestBody(); Assert.That( requestBody, Is.Not.Null, "The request body parameter could not be found"); if (requestBody == null) { return; } ValidateXml(requestBody); using (var sr = new StringReader(requestBody)) { var doc = new XPathDocument(sr); var nav = doc.CreateNavigator(); Assert.That( nav.Select("//methodCall/params/param").Count, Is.EqualTo(2), "There should be 2 parameters"); Assert.That( nav.Select("//methodCall/params/param/value/string").Count, Is.EqualTo(1), "There should be 1 string parameter"); Assert.That( nav.Select("//methodCall/params/param/value/array").Count, Is.EqualTo(1), "There should be 1 array parameter"); Assert.That( nav.Select("//methodCall/params/param/value/array/data/value/string").Count, Is.EqualTo(3), "The array should have 3 (string) elements"); } }
public void SerializeOneDateTimeAltFormat() { var request = new XmlRpcRestRequest("some.method", true) { DateFormat = "MMddyyyy'T'HH':'mm':'ss" }; var date = DateTime.UtcNow; request.AddXmlRpcBody(date); Assert .That(request .Parameters[1] .Value .ToString() .Contains("<dateTime.iso8601>")); var requestBody = request.RequestBody(); Assert.That( requestBody, Is.Not.Null, "The request body parameter could not be found"); if (requestBody == null) { return; } using (var sr = new StringReader(requestBody)) { var doc = new XPathDocument(sr); var nav = doc.CreateNavigator(); Assert.That( nav.Select("//methodCall/params/param").Count, Is.EqualTo(1), "There should be 1 parameters"); Assert.That( nav.Select("//methodCall/params/param/value/dateTime.iso8601").Count, Is.EqualTo(1), "There should be 1 dateTime.iso8601 parameter"); Assert.That( nav.SelectSingleNode("//methodCall/params/param/value/dateTime.iso8601").Value, Is.EqualTo(date.ToString("MMddyyyy'T'HH':'mm':'ss")), "Format of datetime is unexpected"); } }
public GetProfileResponse SendGetProfileRequest(GetProfileRequest request) { GetProfileResponse response = new GetProfileResponse(); var rpcClient = new XmlRpcRestClient(config.RequestUrl); var rpcRequest = new XmlRpcRestRequest(request.RequestUrl) { Method = Method.POST }; // Add request parameters rpcRequest.AddXmlRpcBody(config.BlogID, config.Username, config.Password); try { // Get response var rpcResponse = rpcClient.Execute <RpcResponseValue <string> >(rpcRequest); Console.WriteLine("RESPONSE:"); Console.WriteLine(rpcResponse.Content); // Find and fill members in XmlMemberSearcher searcher = new XmlMemberSearcher(rpcResponse.Content); response.Bio = searcher.GetValueOfMember("bio"); response.DisplayName = searcher.GetValueOfMember("display_name"); response.Email = searcher.GetValueOfMember("email"); response.FirstName = searcher.GetValueOfMember("first_name"); response.LastName = searcher.GetValueOfMember("last_name"); response.NiceName = searcher.GetValueOfMember("nicename"); response.Nickname = searcher.GetValueOfMember("nickname"); response.Url = searcher.GetValueOfMember("url"); response.UserId = searcher.GetValueOfMember("user_id"); response.Username = searcher.GetValueOfMember("username"); } catch (Exception e) { Console.WriteLine(e); return(null); } return(response); }
public void SerializeOneBase64() { var request = new XmlRpcRestRequest("some.method", true); const string fileContent = "some file content goes here"; var data = Encoding.ASCII.GetBytes(fileContent); request.AddXmlRpcBody(data); Assert .That(request .Parameters[1] .Value .ToString() .Contains("<base64>")); var requestBody = request.RequestBody(); Assert.That( requestBody, Is.Not.Null, "The request body parameter could not be found"); if (requestBody == null) { return; } ValidateXml(requestBody); using (var sr = new StringReader(requestBody)) { var doc = new XPathDocument(sr); var nav = doc.CreateNavigator(); Assert.That( nav.Select("//methodCall/params/param").Count, Is.EqualTo(1), "There should be 1 parameters"); Assert.That( nav.Select("//methodCall/params/param/value/base64").Count, Is.EqualTo(1), "There should be 1 base64 parameter"); } }
public void SerializeOneString() { var request = new XmlRpcRestRequest("some.method"); request.AddXmlRpcBody("hello"); Assert .That(request .Parameters[1] .Value .ToString() .Contains("<string>")); var requestBody = request.RequestBody(); Assert.That( requestBody, Is.Not.Null, "The request body parameter could not be found"); if (requestBody == null) { return; } ValidateXml(requestBody); using (var sr = new StringReader(requestBody)) { var doc = new XPathDocument(sr); var nav = doc.CreateNavigator(); Assert.That( nav.Select("//methodCall/params/param").Count, Is.EqualTo(1), "There should be 1 parameters"); Assert.That( nav.Select("//methodCall/params/param/value/string").Count, Is.EqualTo(1), "There should be 1 string parameter"); } }
public void SerializeOneSimpleStructOverrides() { var data = new SerializeSimpleStrucOverrides { Name = "Superman", Age = 33 }; var request = new XmlRpcRestRequest("some.method"); request.AddXmlRpcBody( data); var requestBody = request.RequestBody(); Assert.That( requestBody, Is.Not.Null, "The request body parameter could not be found"); if (requestBody == null) { return; } ValidateXml(requestBody); using (var sr = new StringReader(requestBody)) { var doc = new XPathDocument(sr); var nav = doc.CreateNavigator(); Assert.That( nav.Select("//methodCall/params/param/value/struct/member").Count, Is.EqualTo(2), "There should be 2 members in struct"); Assert.That( nav.SelectSingleNode("//methodCall/params/param/value/struct/member/name").Value, Is.EqualTo("A"), "First Member name should be A"); } }