Web.Contents

Sintaxis

 
Web.Contents(url as text, optional options as nullable record) as binary

Acerca de

Devuelve el contenido descargado de url como un valor binario. Se puede proporcionar un parámetro de registro opcional, options, para especificar más propiedades. El registro puede contener los campos siguientes:

  • Query: agrega parámetros de consulta a la dirección URL mediante programación sin tener que preocuparse por los escapes.
  • ApiKeyName: si el sitio de destino tiene una noción de una clave de API, este parámetro se puede usar para especificar el nombre (no el valor) del parámetro clave que se debe usar en la dirección URL. El valor de clave real se proporciona en la credencial.
  • Headers: si se especifica este valor como un registro, se proporcionarán más encabezados a una solicitud HTTP.
  • Timeout: si se especifica este valor como una duración, se cambiará el tiempo de espera de una solicitud HTTP. El valor predeterminado es 100 segundos.
  • ExcludedFromCacheKey: si se especifica este valor como una lista, se excluirán estas claves de encabezado HTTP de formar parte del cálculo para almacenar datos en caché.
  • IsRetry: si se especifica este valor lógico como true, se pasará por alto cualquier respuesta existente almacenada en la memoria caché al obtener datos.
  • ManualStatusHandling: si se especifica este valor como una lista, se impedirá cualquier control integrado de las solicitudes HTTP cuya respuesta tenga uno de estos códigos de estado.
  • RelativePath: si se especifica este valor como texto, se anexa a la dirección URL base antes de realizar la solicitud.
  • Content: Al especificar este valor, se cambia la solicitud web de GET a POST, usando el valor de la opción como contenido de POST.

La solicitud HTTP se realiza como GET (cuando no se especifica contenido) o POST (cuando hay contenido). Las solicitudes POST solo se pueden realizar de forma anónima.

Los encabezados de la respuesta HTTP están disponibles como metadatos en el resultado binario. Fuera de un contexto de conector de datos personalizado, solo hay disponible un subconjunto de encabezados de respuesta (por motivos de seguridad).

Ejemplo 1

Recupere el contenido de "https://bing.com/search?q=Power+Query" mediante las opciones RelativePath y Query. Estas opciones se pueden usar para consultar dinámicamente una dirección URL base estática.

Uso

let
    searchText = "Power Query"
in
    Web.Contents(
        "https://www.bing.com",
        [
            RelativePath = "search",
            Query = [q = searchText]
        ]
    )

Salida

binary

Ejemplo 2

Realice una operación POST en una dirección URL, pasando una carga JSON binaria y analizando la respuesta como JSON.

Uso

let
    url = ...,
    headers = [#"Content-Type" = "application/json"],
    postData = Json.FromValue([x = 235.7, y = 41.53]),
    response = Web.Contents(
        url,
        [
            Headers = headers,
            Content = postData
        ]
    ),
    jsonResponse = Json.Document(response)
in
    jsonResponse

Salida

table

Ejemplo 3

Conexión a una dirección URL segura que acepte una clave de autenticación como parte de su cadena de consulta. En lugar de codificar de forma rígida la clave secreta en M (lo que supondría un riesgo para la seguridad), la clave se puede proporcionar de forma segura; para ello, especifique su nombre (no su valor) en M, elija la autenticación de API web y escriba el valor de la clave como parte de la credencial de API web. Cuando se usa de esta manera, en el ejemplo siguiente se generará una solicitud a "https://contoso.com/api/customers/get?api_key=******".

Uso

Web.Contents("https://contoso.com/api/customers/get", [ApiKeyName="api_key"])

Salida

binary

Más información

Control de código de estado con Web.Contents en conectores personalizados