Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
5 years ago
Solved

DataSource.Error

Necesito obtener una clave del servidor colocando un POST con autenticación básica. Funciona bien en Cartero, pero en PB Desktop me da:

DataSource.Error: Web.Contents con la opción Contenido solo se admite al conectarse de forma anónima.

Aquí está mi código:

let
url = "https://localhost:446/api/identity",
Source = Json.Document(Web.Contents(url, [Headers=[#"Content-Type"="application/x-www-form-urlencoded"],
Content = Text.ToBinary("{}")
]))

in
#"Source"

¿Hay alguna solución o algo así?

Gracias

  • No hay @Markzolotoy

    Al realizar solicitudes POST en Power Query, debe usar la autenticación anónima cuando se le pregunte

    anonauth.png

    a continuación, en la consulta real se proporciona el nombre de usuario y la contraseña y la autenticación se realiza a través de los encabezados de la solicitud POST

    let
        url = "https://localhost:446/api/identity",
        ClientID = "xxxxxxxx",  // Username
        Secret = "xxxxxxxx",  //Password
        
        EncodedCredentials = "Basic " & Binary.ToText(Text.ToBinary(ClientID & ":" & Secret), BinaryEncoding.Base64),
    
        Source = Json.Document(Web.Contents(url, 
        [
            Headers = [#"Content-Type"="application/x-www-form-urlencoded",#"Authorization"=EncodedCredentials],
            Content=Text.ToBinary("grant_type=client_credentials")
        ]
        )
        )
    
    in
        Source

    Es posible que deba editar la configuración del origen de datos para esta conexión en su PC, para cambiarla a Anónimo

    saludos

    Phil

1 Reply

  • No hay @Markzolotoy

    Al realizar solicitudes POST en Power Query, debe usar la autenticación anónima cuando se le pregunte

    anonauth.png

    a continuación, en la consulta real se proporciona el nombre de usuario y la contraseña y la autenticación se realiza a través de los encabezados de la solicitud POST

    let
        url = "https://localhost:446/api/identity",
        ClientID = "xxxxxxxx",  // Username
        Secret = "xxxxxxxx",  //Password
        
        EncodedCredentials = "Basic " & Binary.ToText(Text.ToBinary(ClientID & ":" & Secret), BinaryEncoding.Base64),
    
        Source = Json.Document(Web.Contents(url, 
        [
            Headers = [#"Content-Type"="application/x-www-form-urlencoded",#"Authorization"=EncodedCredentials],
            Content=Text.ToBinary("grant_type=client_credentials")
        ]
        )
        )
    
    in
        Source

    Es posible que deba editar la configuración del origen de datos para esta conexión en su PC, para cambiarla a Anónimo

    saludos

    Phil