Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Codificación - HTTP GET (sms a móvil)

Estas en el tema de Codificación - HTTP GET (sms a móvil) en el foro de .NET en Foros del Web. Hola: Estoy usando un código, como este de ejemplo, para enviar SMS . EL problema es que: A) si uso el ejemplo tal cual, y ...
  #1 (permalink)  
Antiguo 24/05/2013, 02:38
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 1 mes
Puntos: 156
Pregunta Codificación - HTTP GET (sms a móvil)

Hola:

Estoy usando un código, como este de ejemplo, para enviar SMS . EL problema es que:

A) si uso el ejemplo tal cual, y en el mensaje escribes ñ o acentos los mensajes no se envían.

B) si uso el ejemplo pero añadiendo la codificación del mensaje:

( System.Web.HttpUtility.UrlEncode(mensaje, System.Text.Encoding.GetEncoding("ISO-8859-1")) )

sí se envía, pero el mensaje se recibe sin ñ ni acentos. Es decir aparecen espacios en blanco en vez de esos caracteres. Por lo que mensajes pueden resultar ilegibles

Alguna idea?

EJEMPLO

Código:
Imports System.Net
                    Imports System.IO
                    Dim baseUrl as String = "http://url-of-smseagle/index.php/http_api/send_sms"
                    Dim client as WebClient = New WebClient()
                    client.QueryString.Add("login", "john")
                    client.QueryString.Add("pass", "doe")
                    client.QueryString.Add("to", "1234567")
                    client.QueryString.Add("message", "My message")
                    client.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0")
                    Dim receivedStream As Stream = client.OpenRead(baseUrl)
                    Dim reader As StreamReader = new StreamReader(receivedStream)
                    Dim result As String = reader.ReadToEnd()
                    receivedStream.Close()
                    reader.Close()
                    return result
El ejemplo está sacado de aquí:
http://www.smseagle.eu/api.php
__________________
Saludos
  #2 (permalink)  
Antiguo 24/05/2013, 03:18
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: Codificación - HTTP GET (sms a móvil)

Vale, te comento. Yo trabajo en este mundillo y es algo muy común. La mayoría de proveedores de SMS Bulk utilizan para el texto el formato GSM de 7 bits porque es lo que se puede mostrar en cualquier terminal. Esto hace que algunos acentos se puedan enviar (à) y otros no (á). Además has de vigilar porque algunos carácteres "cuentan doble" porque se envian usando dos bytes.

Aqui tienes la codificación GSM. Recuerda que aunque algunos proveedores te permitan enviar en otra codificación, depende del terminal que lo pueda leer bien o no.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 24/05/2013, 04:12
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 1 mes
Puntos: 156
Respuesta: Codificación - HTTP GET (sms a móvil)

hola malenko!

gracias por responder. Tienes razón. Por este motivo ya tenía una función para controlar lo que comentas. Y así evitar desguisados, antes de enviar los mensajes. Digamos que el texto ya sale revisado.

El problema era que al cambiar de API, ahora las ñ no las enviaba y otros caracteres permitidos tampoco.

Al final he encontrado el error. Y sí, lo típico, el fallo tonto que te lleva 2 días de cabeza.

Resulta que ese código de ejemplo está bien, lo único que la codificación debe ir a así:

Cita:
System.Web.HttpUtility.UrlEncode(mensaje)
en vez de lo que había puesto yo.

Por ahora ya se envía y recibe bien.
__________________
Saludos

Etiquetas: sms
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:41.