Web2.0 - URLConnection

URLConnection si genero el control para manejarlo dentro de un container me funciona bien, pero si quiero crearlo dinámicamente en un módulo general me da error, que me falta?

ejemplo:
Var MiConexion as new URLConnection
MiConexion.Send(“GET”, specialURL)

Error:
Request url is not well-formed.

Estimados, me pasa en xojo 2022r2 donde tampoco encuentro en los ejemplos el uso mediante la creación de una URLConnection en WEB, el ejemplo que veo esta para desktop.
Además la ayuda en línea hoy en día no me da ejemplos completos como hacia antes.
@Ricardo_Cruz quizás me puedas dar una mano?

Hola @Mauricio_Tanco, ¿cómo es la URL?, ¿qué tienes dentro de la variable specialURL al depurar la aplicación? Parece que el problema está ahí.

1 Like

Si, es una cadena API para una ejecución de envío de SMS, te paso
specialURL = “https://api.smscenter.com.uy/sendSMS/
y luego le sumo los parámetros, para recibir lo que te mando en la imagen.

Por el momento no me interesa analizar la respuesta de la API, sino poder ejecutarla, estaba pensando hacerlo por GotoURL pero tampoco me sirve porque me muestra una web resultante.

Este código me funciona a mí, no me da un error:

Var specialURL As String = "https://api.smscenter.com.uy/sendSMS/"
Var MiConexion as new URLConnection
MiConexion.Send("GET", specialURL)

Efectivamente funciona, cuando le agrego el resto, para que me devuelva lo que indicaba en la imagen (captura anterior) me da el error:

specialURL = “https://api.smscenter.com.uy/sendSMS/
specialURL = specialURL + “?id=0&txtcelularnumero=598” + strCEL + “&txtAplicacion=598” + strCEL + “&txtMensaje=”
specialURL = specialURL + strMensaje + “&username=” + strSMSUsuario + “&password=” + strSMSClave

Al parecer sólo estás agregando texto al string de specialURL sin asegurarte que sea “URL safe”. Tienes que convertir el string en un URL válido, por eso el error te dice que tu URL “is not well-formed”, no tiene el formato adecuado.

Por ejemplo, tal vez tengas que convertir

?id=0&txtcelularnumero=598

en

%3Fid%3D0%26txtcelularnumero%3D598
1 Like

Hola @AlbertoD , tengo alguna función que lo haga? o por ejemplo deberia ejecutarlo en el navegador y luego pegarlo con ese formato obtenido, supongo asi podría solucionarlo si no hay una función.

EncodeURLComponent
https://documentation.xojo.com/api/text/encoding_text/encodeurlcomponent.html#encodeurlcomponent

No estoy seguro que ese sea el problema, ojalá y si te sirva.

1 Like

Siii @AlbertoD funcionó, al comienzo se lo agregue a toda la cadena y no funciona porque cambia el http, entonces se lo aplique a los parámetros y ahi si funcionó.
Copio la solución por las dudas que le sirva a alguien:

specialURL = “https://api.smscenter.com.uy/sendSMS/
specialURLencode = “?id=0&txtcelularnumero=598” + strCEL + “&txtAplicacion=598” + strCEL + “&txtMensaje=”
specialURLencode = specialURLencode + strMensaje + “&username=” + strSMSUsuario + “&password=” + strSMSClave
’ necesita hacer un Encode de los parámetros para que funcione
specialURLencode = EncodeURLComponent(specialURLencode)
specialURL = specialURL + specialURLencode
MiConexion.Send(“GET”, specialURL)

Muchas Gracias!