Manera adecuada de manejar el carácter "y" en la cadena JSON enviada al servicio web REST
DE ACUERDO,
Estoy usando elSystem.Runtime.Serialization
y elDataContractJsonSerialization
.
El problema es que en la solicitud envío un valor de una propiedad con el&
personaje. Decir,AT&T
, y me sale una respuesta con error:Invalid JSON Data
.
Pensé que el escape se haría dentro de la biblioteca, pero ahora veo que la serialización se deja intacta en el símbolo&
personaje.
Sí, para un formato JSON esto es válido. Pero será un problema para mi solicitud POST, ya que debo enviarlo a un servidor que, si contiene un signo, responderá con un error, por lo tanto, aquí estoy.
HttpUtility.HtmlEncode
está en elSystem.Web
biblioteca y por lo que el camino a seguir es utilizandoUri.EscapeUriString
. Hice esto para intentarlo, pero de todos modos, y sin él, todas las solicitudes funcionan bien, excepto que un signo está en un valor.
EDITAR:HttpUtility
La clase se transfiere al SDK de Windows Phone, pero la forma preferida de codificar una cadena debería ser aúnUri.EscapeUriString
.
El primer pensamiento fue ensuciarse las manos y comenzar a reemplazar el carácter especial que causaría un problema en el servidor, pero, me pregunto, ¿hay alguna otra solución que deba hacer, que sea eficiente y "adecuada"?
Debería decir que uso
// Convert the string into a byte array.
byte[] postBytes = Encoding.UTF8.GetBytes(data);
Para convertir el JSON a unbyte[]
y escribe alStream
. Y,
request.ContentType = "application/x-www-form-urlencoded";
Como elWebRequest.ContentType
.
Entonces, ¿estoy en mal estado por una razón o algo que extraño?
Gracias.