Web.Contents

Sintaxe

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

Sobre

Retorna o conteúdo baixado de url como binário. Um parâmetro de registro opcional, options, pode ser fornecido para especificar propriedades adicionais. O registro pode conter os seguintes campos:

  • Query: adicione programaticamente parâmetros de consulta à URL sem precisar se preocupar com a saída.
  • ApiKeyName: se o site de destino tiver uma noção de uma chave de API, esse parâmetro poderá ser usado para especificar o nome (não o valor) do parâmetro de chave que deve ser usado na URL. O valor real da chave é fornecido na credencial.
  • Headers: especificar esse valor como um registro fornecerá cabeçalhos adicionais a uma solicitação HTTP.
  • Timeout: especificar esse valor como uma duração alterará o tempo limite de uma solicitação HTTP. O valor padrão é de 100 segundos.
  • ExcludedFromCacheKey: especificar esse valor como uma lista excluirá essas chaves de cabeçalho HTTP de fazerem parte do cálculo para armazenar dados em cache.
  • IsRetry: a especificação desse valor lógico como verdadeiro ignorará qualquer resposta existente no cache ao buscar dados.
  • ManualStatusHandling: especificar esse valor como uma lista impedirá qualquer manipulação interna para solicitações HTTP cuja resposta tenha um desses códigos de status.
  • RelativePath: especificar esse valor como texto o acrescentará à URL base antes de fazer a solicitação.
  • Content: especificar esse valor alterará a solicitação da Web de GET para POST usando o valor da opção como o conteúdo de POST.

A solicitação HTTP é feita como um GET (quando nenhum Conteúdo é especificado) ou um POST (quando há Conteúdo). As solicitações POST só podem ser feitas anonimamente.

Os cabeçalhos da resposta HTTP estão disponíveis como metadados no resultado binário. Fora de um contexto de conector de dados personalizado, apenas um subconjunto de cabeçalhos de resposta está disponível (por motivos de segurança).

Exemplo 1

Recupere o conteúdo de "https://bing.com/search?q=Power+Query" usando as opções RelativePath e Query. Essas opções podem ser usadas para consultar dinamicamente uma URL base estática.

Usage

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

Saída

binary

Exemplo 2

Execute um POST em uma URL, passando um conteúdo JSON binário e analisando a resposta como JSON.

Usage

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

Saída

table

Exemplo 3

Conecte-se a uma URL segura que aceita uma chave de autenticação como parte da cadeia de caracteres de consulta dela. Em vez de fazer o hard-coding da chave secreta em M (o que representaria um risco de segurança), a chave pode ser fornecida com segurança especificando o nome dela (não o valor) em M, escolhendo a autenticação da API Web e inserindo o valor da chave como parte da credencial da API Web. Quando usado dessa forma, o exemplo a seguir gerará uma solicitação para "https://contoso.com/api/customers/get?api_key=******".

Usage

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

Saída

binary

Mais informações

Manipulação de código de status com Web.Contents em conectores personalizados