¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo autenticar una URL HTTP con nombre de usuario y contraseña en ABAP - Guía paso a paso

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 128 Vistas
0
Cargando...

Hola,

Quiero autenticar una URL http con nombre de usuario y contraseña codificados en el código ABAP. Pero no he tenido éxito. Uso RSHTML01 y sus métodos para autenticar a mi usuario en el programa ZRSHTML01.

Intenté iniciar sesión con RSHTML01 e ingresar manualmente el nombre de usuario y la contraseña en la ventana emergente, pero no pude establecer la conexión.

Mi objetivo principal es mostrar esta imagen de URL en un contenedor.

Gracias de antemano.

En el navegador la pantalla se ve así;

auth.png

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Debes completar las credenciales adecuadas como

data(tpcredentials) = base64encoder->if_http_utility~encode_base64( |{ tpuser }:{ tp_password }| ).

Luego

  CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
     EXPORTING
       NAME  = 'authorization'
       VALUE = |Basic { tpcredentials }|
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Felipe,

Utilizo el siguiente programa para http://192.168.*.*/snap.jpg . El mensaje de retorno es "Fallo de comunicación HTTP (código: 401)".

Pero si intento acceder a http://192.168.*.*/ , el programa devuelve OK. Necesito ver la instantánea jpg en mi contenedor SAP. Pero no pude autenticarme.

Utilicé muchas alternativas que estaban comentadas en este código. http://username: password@example.com / tampoco está funcionando.

  • El programa RSICFCLTST01 devuelve
GET /snap.jpg HTTP/1.0
authorization: Basic c2*****************gh

cuando me autentico http://192.168.*.*/snap.jpg

¿Podrías revisar mi código por favor? Creo que no hay muchos problemas para una solución.

Gracias.

PARAMETERS p_url TYPE string LOWER CASE DEFAULT 'http://192.168.*.*/snap.jpg'.

DATA content TYPE string.
DATA url TYPE string.
DATA tpuser TYPE string.
DATA tppassword TYPE string.
DATA base64encoder TYPE REF TO cl_http_utility.
CREATE OBJECT base64encoder.

url = p_url.
tpuser = 'sapservice'.
tppassword = '*********'.


tpuser = base64encoder->if_http_utility~encode_base64( tpuser ) .
tppassword = base64encoder->if_http_utility~encode_base64( tppassword ) .

PERFORM sendrequest
   USING url tpuser tppassword
   CHANGING content.
WRITE content.


FORM sendrequest USING url TYPE string
                        tpuser TYPE string
                        tppassword TYPE string
                  CHANGING content TYPE string.

  DATA http_client TYPE REF TO if_http_client.
  DATA utf8content TYPE xstring.
  DATA utf8length TYPE i.
  DATA tmpstr TYPE string.
  
            
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

Normalmente podrías hacer algo así: http://username:password@example.com/ .

No me sorprendería si lo que estás diciendo es que no está funcionando.

Si es así, deberías codificar usuario:contraseña con base64 y pasarlo en un campo de encabezado de Autorización en tu manejador de solicitud http.

Saludos,

Felipe Silva

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?