Power Builder - HTTPCLIENT con PB 2019 R2

 
Vista:

HTTPCLIENT con PB 2019 R2

Publicado por antonio (1271 intervenciones) el 24/09/2020 23:46:24
Un saludo a todos:

estoy haciendo pruebas con PowerBuilder 2019 R2 y quiero consumir un web service con HTTPClient, pero no encuentro suficiente ayuda para implementarlo....

¿Alguien tiene algún ejemplo para implementarlo?


Gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

HTTPCLIENT con PB 2019 R2

Publicado por Bunker (5 intervenciones) el 19/05/2025 01:54:18
Hola Antonio
como te ha ido con httpclient

Estoy consumiendo webservices de ARCA (argentina) con SOAP
y en virtud de que que deseo migrar a PB2025 que ya Discontinuaron
SOAP estoy probando con HTTPCLIENT

pero no avanzo
veo que hay demasiado código manual que hacer
armar el XML a mano

Y como dices hay poca informacion

SI algo tienes te agradezco

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

HTTPCLIENT con PB 2019 R2

Publicado por amilcar (14 intervenciones) el 27/05/2025 16:54:19
les pego un codigo para consumir servicio web........................RESTClient lrc_datos
CoderObject lnv_Coder
string ls_url, ls_data, ls_response
integer li_respuesta
string ls_auth_string, ls_encoded_auth,ls_respuestas
blob lblb_authorizationBlob

// **1. Inicializar el objeto RESTClient**
lrc_datos = CREATE RESTClient

// **2. Establecer la URL del servicio web**
// cuenta individual
//ls_url = "https://XXXXXX" // Reemplaza con la URL real del servicio web



// **3. Preparar los datos a enviar (JSON en este caso)**

(si usas dw hay una forma directa de generar el json desde el w)

ls_documento='~"numeroDocumento~": ~"'+ls_nro_documento+'~"'
ls_cliente='~"nroCliente~": ~"'+string(ll_conexion_id)+'~"'
ls_razon_social='~"razonSocial~": ~"'+ls_nombre+'~"'
ls_tipo_tarifa='~"tarifa~": ~"'+ls_tarifa+'~"'
ls_medidor='~"nroMedidor~": ~"'+ls_nro_medidor+'~"'
ls_direccion_suministro='~"direccionSuministro~": ~"'+ls_direccion+'~"'


ls_data = "{"+ls_documento+","+ ls_cliente+","+ls_razon_social+","+ls_tipo_tarifa+","+ls_medidor+","+ls_direccion_suministro +"}," // Ejemplo de datos JSON. ¡IMPORTANTE! Usa comillas ~" para delimitar.





// **4. Codificar las credenciales (usuario y contraseña) en Base64**
CoderObject lo_coderobject
lnv_Coder = CREATE CoderObject //Instancia del objeto CoderObject
/ls_auth_string = "api:XXXXXX" // Usuario:Contraseña

// Convierte la cadena a un Blob
lblb_authorizationBlob = Blob(ls_auth_string,EncodingUTF8!)

// Codifica el Blob a Base64
ls_encoded_auth = lnv_Coder.Base64URLEncode(lblb_authorizationBlob)

//ls_encoded_auth = "ASDASDAS" // Usuario:Contraseña encriptada



// **5. Establecer los encabezados de la solicitud**
lrc_datos.SetRequestHeaders("Content-Type: application/json;charset=UTF-8~r~n" + &
"Cache-Control: no-cache~r~n" + &
"Authorization: Basic " + ls_encoded_auth) // Encabezado de autenticación Basic


// **6. Enviar la solicitud POST (Usar PostRequest para enviar datos)**
li_respuesta = lrc_datos.SendPostRequest(ls_url, ls_data, ls_response)

// **7. Manejar la respuesta**
IF li_respuesta <> 1 THEN
MessageBox("Error", "Error al enviar información al servidor web. Código de error: " + String(li_respuesta))
RETURN
END IF

// Verificar el código de estado HTTP y el contenido de la respuesta
If lrc_datos.GetResponseStatusCode() <> 200 Then
MessageBox("Error del Servidor", "El servidor devolvió un error: " + String(lrc_datos.GetResponseStatusCode()) + "~r~nRespuesta: " + ls_response)
// Aquí puedes analizar ls_response para obtener más detalles del error, si el servicio web los proporciona.
END IF

if ls_response<>"" then
ls_respuestas = ls_respuestas + ls_response +"~r~n"
end if


// **8. Destruir el objeto RESTClient y CoderObject**
DESTROY lrc_datos
Destroy lnv_Coder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

HTTPCLIENT con PB 2019 R2

Publicado por bunker (156 intervenciones) el 01/06/2025 03:13:12
Gracias Amilcar
trato de probar con los WebServices que necesito ( ARCA Argentina )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar