Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more
Hola a todos
Necesito acceder a los datos desde la API POST proporcionada por el cliente.
Tengo la información proporcionada por el cliente:
Verbo: POST
DEV Endpoint: https://clientwebsitename.azurewebsites.net/dev/masterdata/departments/get
Encabezado requerido: X-Token (pasar el JWT del usuario)
JSON devuelto tiene un elemento denominado uiList que contiene una lista de todos los departamentos permitidos.
¿Puede alguien por favor ayudar a cómo acceder a los datos de esta API proporcionada, he intentado la mayoría, pero devuelve un error 404.
Gracias
Solved! Go to Solution.
HI @atul-patil,
>>DataSource.Error: los datos descargados son HTML, que no es el tipo esperado. La dirección URL puede ser incorrecta o es posible que no haya proporcionado las credenciales correctas al servidor.
Tal vez este problema aparece cuando intenta utilizar el conector incorrecto para reconocer los datos de respuesta.
Me gustaría sugerirle la navegación al paso "Origen" para confirmar el tipo de resultado y cambiar al conector correspondiente en los pasos siguientes para reconocer/análisis de registros.
saludos
Xiaoxin Sheng
HI @atul-patil,
Puede echar un vistazo al siguiente vínculo sobre el uso de un conector web para obtener datos de la API de la resto con autorizaciones:
Extraer datos de una autenticación de API REST
Código de ejemplo:
let
token = 'your token',
body= 'request body',
url = "https://clientwebsitename.azurewebsites.net/",
Source = Web.Contents(url,
[
Headers = [#"X-Token"=token],
RelativePath="dev/masterdata/departments/get",
Content = Text.ToBinary(body)
]
)
in
Source
saludos
Xiaoxin Sheng
Hola @v-shex-msft,
Gracias por la respuesta, he probado el código que ha proporcionado, pero da el siguiente error-
Expression.Error: el encabezado 'X-Token' solo se admite cuando se conecta de forma anónima. Estos encabezados se pueden utilizar con todos los tipos de autenticación: Accept, Accept-Charset, Accept-Encoding, Accept-Language, Cache-Control, Content-Type, If-Modified-Since, Prefer, Range, Referer.
He probado en el cartero y funciona, qué proceso he utilizado en el cartero como abajo-
1. Tengo URL para obtener Token: (jwt)
URL: https://Clientwebsite.azurewebsites.net/dev/auth/user/authenticate
aquí he proporcionado la carga útil, así
2. Luego otra URL para obtener los Datos
URL: https://Clientwebsite.azurewebsites.net/dev/masterdata/departments/get
aquí he proporcionado Kayname (X-Token) y jwd Token (generado desde el 1er paso).
Por favor, ayúdame a recuperar los datos.
Gracias
Hola @atul-patil,
Parece que necesita agregar el primer estreptococo en la tabla de consulta para obtener el token de acceso y usar en los pasos siguientes, intento modificar la fórmula para agregar el primer paso a la fórmula:
let
url = "https://clientwebsitename.azurewebsites.net/",
// Uses the Twitter POST oauth2/token method to obtain a bearer token
GetJson = Web.Contents(url,
[
Headers = [#"Authorization"=authKey, #"Content-Type"="application/json"],//use the sent parameters and name as you do in postman to replace current Authorization
RelativePath="dev/auth/user/authenticate"
]
),
token = Json.Document(GetJson)['token name'],//use tokne name to repalce 'tokne name' part to extract the responsed token
Source = Web.Contents(url,
[
Headers = [#"X-Token"=token, #"Content-Type"="application/json"],
RelativePath="dev/masterdata/departments/get"
]
),
Result=Json.Document(Source)
in
Result
Por cierto, ¿cómo publicó las autorizaciones en sus solicitudes? ¿En el encabezado, cuerpo o concatenar en cadena de consulta? Mi fórmula es add authorized en los encabezados y puede que no sea adecuada para todos los escenarios.
Blog de BI de Chris Webb
saludos
XIaoxin Sheng
Hola @v-shex-msft,
Gracias por la sugerencia, Pero da el error,
Lo que he intentado:
Dejar
url "https://clientwebsitename.azurewebsites.net/",
cuerpo de cuerpo "
""grant_type"": ""client_credentials"",
""TenantId"": ""Client2"",
""UserSignon"": ""corp2019"",
""Contraseña"": ""prueba""
}",
GetJson - Web.Contents(url,
[
Encabezados á ["Content-Type" ,"application/raw"],
Content-Text.ToBinary(body),//use los parámetros y el nombre enviados como lo hace en el cartero para reemplazar la Autorización actual
RelativePath"dev/auth/user/authenticate"
]
),
token : Json.Document(GetJson)['jwt'],
Fuente: Web.Contents(url,
[
Encabezados á ['X-Token''token' ,'Tipo de contenido''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
RelativePath"dev/masterdata/departments/get"
]
),
Resultado-Json.Document(Origen)
En
Resultado
La consulta se ejecuta correctamente cuando se suprime el ['jwt'] de la 2a consulta y generó el 2 token con el valor como se muestra a continuación
El problema es ['jwt] no se trabaja, da error como "Identificador no válido".
Gracias
Hola @atul-patil,
Mi culpa, parece que agregué caracteres adicionales '' en la fórmula de muestra. De hecho, los caracteres '' no son necesarios. Utilice [jwt] para reemplazar ['jwt'] e inténtelo de nuevo.
BTW, por favor haga una máscara en los datos confidenciales de su ejemplo formal y las instantáneas.
saludos
Xiaoxin Sheng
Gracias @v-shex-msft,
Pero sigue mostrando el siguiente error:
DataSource.Error: los datos descargados son HTML, que no es el tipo esperado. La dirección URL puede ser incorrecta o es posible que no haya proporcionado las credenciales correctas al servidor.
Gracias
HI @atul-patil,
>>DataSource.Error: los datos descargados son HTML, que no es el tipo esperado. La dirección URL puede ser incorrecta o es posible que no haya proporcionado las credenciales correctas al servidor.
Tal vez este problema aparece cuando intenta utilizar el conector incorrecto para reconocer los datos de respuesta.
Me gustaría sugerirle la navegación al paso "Origen" para confirmar el tipo de resultado y cambiar al conector correspondiente en los pasos siguientes para reconocer/análisis de registros.
saludos
Xiaoxin Sheng
Su solicitud está incompleta. POST requiere una carga en el cuerpo de la solicitud.
Hola @lbendlin,
Gracias por la respuesta.
Sí tengo otro enlace, así como la carga útil contiene el nombre de usuario y la contraseña para acceder a los datos desde el enlace dado
Gracias
Este es un ejemplo. Utilice Json.FromValue para codificar en binario la carga útil
Dejar
URL : "http://xxx/tstat",
encabezados de encabezados de la dirección de encabezados ['Content-Type'"'application/json"],
data á Json.FromValue([tmode ? 2,t_cool - Setpoint,hold - 0]),
Web - Web.Contents(URL, [ Contenido - datos, Encabezados - encabezados, ManualStatusHandling ? 404, 400o]),
resultado: Json.Document(web)
En
Resultado
Hola @lbendlin,
Lo siento, pero soy nuevo en este proceso, ¿puede decirme dónde puedo usar este código?
Se trata de Power Query (también denominado M). Se usa para conectarse a los orígenes de datos.
Si es nuevo en Power BI, es posible que desee comenzar con un proyecto más fácil. La ejecución de llamadas POST es bastante avanzada.
Hola @lbendlin
Lo siento, es mi culpa, quiero decir, ¿es necesario escribir en el editor de avances de Power Query Editor?
También tiene una pregunta, Dónde agregar el nombre de encabezado (es decir, X-Token) y el token jwd generados a partir de la carga.
Sí, esto va en el editor avanzado. Lo mismo para el encabezado (como se muestra en el ejemplo)
Cuando obtenga los datos de la llamada POST, debe analizarlo según sea necesario. Una vez más esto se hace en el mismo editor avanzado.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
Check out the October 2025 Power BI update to learn about new features.