tiene que proyecto para instalar este español ejecutar developer curso crear app aplicaciones abrir c# .net windows-runtime windows-store-apps url-encoding

c# - que - windows 10 developer



¿Cómo creo una cadena de consulta en una aplicación C#Windows Store(también conocida como WinRT/Metro)? (1)

Actualmente, no hay ninguno disponible que yo sepa.

Es bastante fácil crear algo que refleje la funcionalidad .NET original:

public static class UriExtensions { public static Uri CreateUriWithQuery(Uri uri, NameValueCollection values) { var queryStr = new StringBuilder(); // presumes that if there''s a Query set, it starts with a ? var str = string.IsNullOrWhiteSpace(uri.Query) ? "" : uri.Query.Substring(1) + "&"; foreach (var value in values) { queryStr.Append(str + value.Key + "=" + value.Value); str = "&"; } // query string will be encoded by building a new Uri instance // clobbers the existing Query if it exists return new UriBuilder(uri) { Query = queryStr.ToString() }.Uri; } } public class NameValueCollection : Dictionary<string, string> { }

Usando como:

var uri = UriExtensions.CreateUriWithQuery(new Uri("http://example.com"), new NameValueCollection { { "key1", "value1" }, { "key2", "value2" }});

Resultados:

http://localhost/?key1=value1&key2=value2

Deseo acceder a un recurso web con una cadena de consulta HTTP GET, por ejemplo:

http://stackoverflow.com/search?q=search%20example&tab=relevance

En una aplicación regular de .NET Framework 4.5, puede usar System.Net.WebClient.QueryString :

Observaciones

La propiedad QueryString contiene una instancia de NameValueCollection que contiene pares de nombre / valor que se anexan al URI como una cadena de consulta. El contenido de la propiedad QueryString está precedido por un signo de interrogación (?), Y los pares de nombre / valor están separados uno del otro por un símbolo comercial (&).

Para las aplicaciones de la tienda, incluso puede analizarlas con Windows.Foundation.WwwFormUrlDecoder .

Pero para crear una cadena de consulta, el mejor fragmento que pude encontrar en MSDN fue este:

UriBuilder baseUri = new UriBuilder("http://www.contoso.com/default.aspx?Param1=7890"); string queryToAppend = "param2=1234"; if (baseUri.Query != null && baseUri.Query.Length > 1) baseUri.Query = baseUri.Query.Substring(1) + "&" + queryToAppend; else baseUri.Query = queryToAppend;

(desde: http://msdn.microsoft.com/en-us/library/system.uribuilder.query(v=vs.110).aspx )

¿Microsoft realmente insinúa que debería unir mis parámetros con "=" y "&"? ¿No hay una mejor manera?