Forum Discussion
Acceda a los datos desde post API
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
- Anonymous6 years ago
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
15 Replies
- lbendlin
Super User
Su solicitud está incompleta. POST requiere una carga en el cuerpo de la solicitud.
- AnonymousNot applicable
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
- lbendlin
Super User
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
- AnonymousNot applicable
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 Sourcesaludos
Xiaoxin Sheng
- AnonymousNot applicable
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
- AnonymousNot applicable
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 ResultPor 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
saludosXIaoxin Sheng