From fcbdb548187c2006c31f7ae62b2418657c660803 Mon Sep 17 00:00:00 2001 From: hartaa Date: Tue, 6 May 2014 13:53:41 -0600 Subject: [PATCH 1/3] Added conditional compilation directive around setting the HttpWebRequest PreAuthenicate property for windows phone and silverlight. This property is not supported in either. --- RestSharp/Http.Async.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/RestSharp/Http.Async.cs b/RestSharp/Http.Async.cs index 50999f349..9d1c5f867 100644 --- a/RestSharp/Http.Async.cs +++ b/RestSharp/Http.Async.cs @@ -379,8 +379,10 @@ private HttpWebRequest ConfigureAsyncWebRequest(string method, Uri url) #if !PocketPC webRequest.UseDefaultCredentials = UseDefaultCredentials; #endif - webRequest.PreAuthenticate = PreAuthenticate; +#if !WINDOWS_PHONE && !SILVERLIGHT + webRequest.PreAuthenticate = PreAuthenticate; +#endif AppendHeaders(webRequest); AppendCookies(webRequest); From b62827dcdfce1252466e0d9f21efd89b5ab3958a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Brengesj=C3=B6?= Date: Wed, 7 May 2014 10:39:46 +0200 Subject: [PATCH 2/3] BuildUri: Tell which UrlSegment parameter value is null --- RestSharp.Tests/UrlBuilderTests.cs | 11 +++++++++++ RestSharp/RestClient.cs | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/RestSharp.Tests/UrlBuilderTests.cs b/RestSharp.Tests/UrlBuilderTests.cs index a94fef44c..5ea30cd22 100644 --- a/RestSharp.Tests/UrlBuilderTests.cs +++ b/RestSharp.Tests/UrlBuilderTests.cs @@ -125,6 +125,17 @@ public void GET_with_resource_containing_tokens() Assert.Equal(expected, output); } + [Fact] + public void GET_with_resource_containing_null_token() + { + var request = new RestRequest("/resource/{foo}", Method.GET); + request.AddUrlSegment("foo", null); + var client = new RestClient("http://example.com/api/1.0"); + + var exception = Assert.Throws(() => client.BuildUri(request)); + Assert.Contains("foo", exception.Message); + } + [Fact] public void POST_with_resource_containing_tokens() { diff --git a/RestSharp/RestClient.cs b/RestSharp/RestClient.cs index 82a990f2b..94f669411 100644 --- a/RestSharp/RestClient.cs +++ b/RestSharp/RestClient.cs @@ -248,6 +248,11 @@ public Uri BuildUri(IRestRequest request) var urlParms = request.Parameters.Where(p => p.Type == ParameterType.UrlSegment); foreach (var p in urlParms) { + if (p.Value == null) + { + throw new ArgumentException(string.Format("Cannot build uri when url segment parameter '{0}' value is null.", p.Name), "request"); + } + assembled = assembled.Replace("{" + p.Name + "}", p.Value.ToString().UrlEncode()); } From 7868b2bf885ddb545bf3febc69d47243bb8ff7dc Mon Sep 17 00:00:00 2001 From: Matthew Grogan Date: Wed, 7 May 2014 19:44:14 -0400 Subject: [PATCH 3/3] Preserve parent namespace when serializing lists --- RestSharp/Serializers/XmlSerializer.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RestSharp/Serializers/XmlSerializer.cs b/RestSharp/Serializers/XmlSerializer.cs index 35422b694..a6fcca2d6 100644 --- a/RestSharp/Serializers/XmlSerializer.cs +++ b/RestSharp/Serializers/XmlSerializer.cs @@ -77,7 +77,7 @@ public string Serialize(object obj) { { itemTypeName = type.Name; } - var instance = new XElement(itemTypeName); + var instance = new XElement(itemTypeName.AsNamespaced(Namespace)); Map(instance, item); root.Add(instance); } @@ -155,7 +155,7 @@ where p.CanRead && p.CanWrite ? setting.Name : type.Name; } - var instance = new XElement(itemTypeName); + var instance = new XElement(itemTypeName.AsNamespaced(Namespace)); Map(instance, item); element.Add(instance); }