private string RequestCore(string address) { _output = GeoCoderOutput.Xml; var queryString = new QueryStringParameterCollection(); queryString.Add("address", address); queryString.Add("sensor", "false"); var url = string.Format("{0}/{1}{2}", ApiUrl, _output.ToString().ToLowerInvariant(), queryString); var req = (HttpWebRequest)WebRequest.Create(url); var res = (HttpWebResponse)req.GetResponse(); string responseString; if (res == null) { throw new WebException("Can't get response from service."); } var responseContent = res.GetResponseStream(); if (responseContent == null) { throw new WebException("Can't get response from service."); } using (var reader = new StreamReader(responseContent)) { responseString = reader.ReadToEnd(); } return(responseString); }
public void OriginalQueryStringValuesArePreservedWhenAddingEmptyQuery() { var query = new QueryStringParameterCollection(); var result = UriUtility.AddQuery("path?a=1", query); Assert.AreEqual("path?a=1", result); }
public void QueryStringParameterCollectionCanParseMultipleValuesWithTheSameName() { var collection = QueryStringParameterCollection.Parse("a=1&a=2&a=3"); CollectionAssert.AreEquivalent(new[] { "1", "2", "3" }, collection.Collection.GetValues("a")); }
public void QueryStringParameterCollectionAddsMultipleValuesForEnumerableTypes() { var collection = new QueryStringParameterCollection(); collection.Add("value", new[] { "1", "2", "3" }); CollectionAssert.AreEquivalent(new[] { "1", "2", "3" }, collection.Collection.GetValues("value")); }
public void QueryStringParameterCollectionEncodesParameterValues(string value, string expected) { var collection = new QueryStringParameterCollection(); collection.Add("value", value); Assert.AreEqual(expected, collection.ToString()); }
public void QueryStringParameterCollectionCanContainMultipleValuesWithTheSameName() { var collection = new QueryStringParameterCollection(); collection.Add("a", "1"); collection.Add("a", "2"); CollectionAssert.AreEqual(new[] { "1", "2" }, collection.Collection.GetValues("a")); }
public void QueryStringValuesAreAddedToUri() { var query = new QueryStringParameterCollection() { { "a", "1" } }; var result = UriUtility.AddQuery("path", query); Assert.AreEqual("path?a=1", result); }
public void QueryStringParameterCollectionDoesNotInterpretStringsAsACollectionOfCharacters() { const string value = "12345"; var collection = QueryStringParameterCollection.FromObject(new { a = value }); var result = collection.Collection.GetValues("a"); CollectionAssert.AreEquivalent(new string[1] { value }, result); }
public void QueryStringParameterCollectionIncludesMultipleValuesWithTheSameNameInStringRepresentation() { var collection = new QueryStringParameterCollection() { { "a", "1" }, { "a", "2" }, { "b", "3" } }; Assert.AreEqual("a=1&a=2&b=3", collection.ToString()); }
public static NameValueCollection ParseQueryString(string value) { if (value == null) { throw new ArgumentNullException(nameof(value)); } var valueToUse = value.StartsWith("?", StringComparison.Ordinal) ? value.Substring(1) : value; var result = new QueryStringParameterCollection(); if (valueToUse.Length == 0) { return(result); } var parameters = valueToUse.Split(ParameterSeparator); foreach (var parameter in parameters) { var nameAndValue = parameter.Split(NameAndValueSeparator, count: 2); switch (nameAndValue.Length) { case 1: result.Add(null, WebUtility.UrlDecode(nameAndValue[0])); break; case 2: result.Add(WebUtility.UrlDecode(nameAndValue[0]), WebUtility.UrlDecode(nameAndValue[1])); break; default: throw Throw.UnexpectedCase(nameAndValue.Length); } } return(result); }
public void QueryStringParameterCollectionIgnoresNullValuesWhenConstructingFromObject() { var collection = QueryStringParameterCollection.FromObject(new { a = (string)null }); CollectionAssert.DoesNotContain(collection.Names.ToArray(), "a"); }
public void QueryStringParameterCollectionIgnoresLeadingQuestionMarkInParseValue() { var collection = QueryStringParameterCollection.Parse("?name=value"); CollectionAssert.AreEquivalent(new[] { "name" }, collection.Names.ToArray()); }
public void QueryStringParameterCollectionDecodesParameterValues(string query, string expectedValue) { var collection = QueryStringParameterCollection.Parse(query); Assert.AreEqual(expectedValue, collection.Collection["value"]); }