Solicitud HTTP POST con formulario de datos codificados en URL

Un usuario Pregunto ✅

dpombal

Hola a todos,

Estoy tratando de reproducir la siguiente llamada API HTTP Post, con éxito en Postman:

Configuración del cartero

  1. Clave de autorización con secuencia de tokens
  2. Cuerpo con 3 parámetros y opción de selección importante x-www-form-urlencoded

EncabezamientoEncabezamientoParámetrosParámetros

Probé varios códigos M con esta plantilla y modificaciones

dejar
auth_key = «XXXXXXXXXXXXX»,
base_url = «www.WEBPAGE.com»,
extension = «/api/datos_de_recarga/chargedata.php»,
url = base_url y extensión,
encabezado = [#»Authorization» = auth_key,
#»Content-Type» = «application/x-www-form-urlencoded»],
content1 = «{
«» INICIAR SESIÓN «»: «» USUARIO@dominio.es «»,
«» PASSWORD «»: «» PASS «»,
«» INICIO «»: «» 2019-11-01T00: 00: 00Z «»
} «,
webdata1 = Web.Contents (url, [Headers=header,Content = Text.ToBinary(content1)]),
response1 = Json.Document (webdata1)
en
respuesta1

Todos con acceso denegado

Saludos

dpombal

En respuesta a artemus

Esta opción funcionó finalmente para mí, trataré de mejorar el código usando parámetros, pero es un buen comienzo.

CÓDIGO OK

dejar
auth_key = «XXXXXXXXXXXXXXXXXXX»,
base_url = «www.hostname.com»,
extension = «/api/datos_de_recarga/chargedata.php»,
url = base_url y extensión,
encabezado = [#»Authorization» = auth_key,
#»Content-Type» = «application/x-www-form-urlencoded»],
content1 = «LOGIN=USER@DOMAIN.es&PASSWORD=XXXXXX&INICIO=2019-11-01T00: 00: 00Z»,
webdata1 = Web.Contents (url, [Headers=[#»Authorization» = auth_key,
#»Content-Type» = «application/x-www-form-urlencoded»], Contenido = Texto.ToBinario (contenido1)]),
response1 = Json.Document (webdata1)
en
respuesta1

Intente usar: Uri.BuildQueryString (registro) para construir su cadena de consulta en lugar de ingresarla manualmente como una cadena. Podría ser algún problema de codificación.

dpombal

En respuesta a artemus

puedes ayudarme Probé mis personajes con y sin codificación … creo que este no es mi problema actual

dónde usar Uri.BuildQueryString (registro)

En respuesta a dpombal

Primer cambio

content1 = «{
«» INICIAR SESIÓN «»: «» USUARIO@dominio.es «»,
«» PASSWORD «»: «» PASS «»,
«» INICIO «»: «» 2019-11-01T00: 00: 00Z «»
} «,

para

content1 =

[

   LOGIN = «USER@domain.es»,

   PASSWORD = «PASS»,

   INCIO = #datetimezone(2019, 11, 1, 0, 0, 0, 0, 0)

]

luego cambia:

Text.ToBinary (contenido1)

con

Text.ToBinary (Uri.BuildQueryString (contenido1))

dpombal

En respuesta a artemus

Esta opción funcionó finalmente para mí, trataré de mejorar el código usando parámetros, pero es un buen comienzo.

CÓDIGO OK

dejar
auth_key = «XXXXXXXXXXXXXXXXXXX»,
base_url = «www.hostname.com»,
extension = «/api/datos_de_recarga/chargedata.php»,
url = base_url y extensión,
encabezado = [#»Authorization» = auth_key,
#»Content-Type» = «application/x-www-form-urlencoded»],
content1 = «LOGIN=USER@DOMAIN.es&PASSWORD=XXXXXX&INICIO=2019-11-01T00: 00: 00Z»,
webdata1 = Web.Contents (url, [Headers=[#»Authorization» = auth_key,
#»Content-Type» = «application/x-www-form-urlencoded»], Content = Text.ToBinary (content1)]),
response1 = Json.Document (webdata1)
en
respuesta1

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *