Saltos de línea con WCF, JSON y un cliente que no sea Windows
Tengo un servicio de WCF del NET usando WebMessageFormat.Json
como su ResponseFormat
y su RequestFormat
. El servicio se ejecuta en un servidor Windows, el cliente es una tableta Android.
Como resulta, las cadenas enviadas desde el cliente al servidor contienen LF
linebreaks ("\ n") en lugar de CRLF
("\ r \ n"). Dado que Android está basado en Linux, esto no es sorprendente. Sin embargo, los datos se almacenan en una base de datos de Windows y se leen por clientes de Windows, por lo que necesito rupturas de línea CRLF
.
- Publicar un servicio JSONArray en WCF desde android
- Cómo consumir servicios WCF dependientes de la sesión usando Ksoap2-Android
- WCF vs WEB api vs Web servicios para el nuevo sitio web de comercio electrónico
- Android - Https conexión a un servicio WCF de .NET da SSLException: "Ningún certificado de compañero"
- Error de acceso denegado con jQuery
¿Existe una forma más elegante de resolver este problema que manualmente s = s.Replace("\n", "\r\n");
cada cadena recibida a través de WCF? Ya que WCF tiene tantas opciones y características, pensé que podría haber alguna opción oculta AutoTranslateNewlines
que he perdido …
Información adicional: Mi servicio se declara más o menos así:
[OperationContract()] [WebInvoke(ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, UriTemplate = "MyService?UserId={myUserId}")] public Reply MyService(String myUserId, Request someRequest) { ... }
donde Request
es una clase personalizada con unos pocos campos String
, algunos de los cuales pueden contener varias líneas de texto.
- Solicitud de aplicaciones para Android Servicio WCF (SerializationException - utf-8 related)
- Android post gzip
- Envío de una solicitud JSON HTTP POST desde Android
- Android con servicio web de WCF usando ksoap2 - error SoapFault - código de error: 'a: ActionNotSupported'
- Android Value ... de tipo java.lang.String no se puede convertir a JSONArray
- Cómo llamar a un servicio WCF usando ksoap2 en android?
- Android se conecta a un servicio de reposo de WCF en IIS con la autenticación de certificado de cliente autofirmada
- Diferentes formas de publicar valores json en Server
Usted menciona que está usando
s = s.Replace("\n","\r\n");
Pero un problema podría surgir cuando usted tiene algunas secuencias "\r\n"
en su cadena. Estos se convertirían en "\r\r\n"
, lo cual sería un problema. Para resolver este problema, simplemente haga lo siguiente.
s = s.Replace("\r\n", "\n"); s = s.Replace("\r", "\n"); s = s.Replace("\n", "\r\n");
que debe manejar todas las situaciones, aunque tal vez no el más performant. Para un mejor rendimiento, tal vez usted puede utilizar una expresión regular.
- Inicio de sesión de Facebook con la aplicación no instalada redirecciona a la página de inicio de sesión
- Android cursorLoader con paginación o carga más funcionalidad?