Partager via


Web.Contents

Syntaxe

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

À propos

Retourne le contenu téléchargé à partir du url fichier binaire. Un paramètre d’enregistrement facultatif peut optionsêtre fourni pour spécifier des propriétés supplémentaires. L’enregistrement peut contenir les champs suivants :

  • Query: ajoutez par programmation des paramètres de requête à l’URL sans avoir à vous soucier de l’échappement.
  • ApiKeyName: si le site cible a une notion de clé API, ce paramètre peut être utilisé pour spécifier le nom (et non la valeur) du paramètre de clé qui doit être utilisé dans l’URL. La valeur de clé réelle est fournie dans les informations d’identification.
  • Headers: la spécification de cette valeur en tant qu’enregistrement fournit des en-têtes supplémentaires à une requête HTTP.
  • Timeout: la spécification de cette valeur en tant que durée modifie le délai d’expiration d’une requête HTTP. La valeur par défaut est de 100 secondes.
  • ExcludedFromCacheKey: la spécification de cette valeur en tant que liste exclut ces clés d’en-tête HTTP de faire partie du calcul pour la mise en cache des données.
  • IsRetry: la spécification de cette valeur logique comme true ignore toute réponse existante dans le cache lors de l’extraction de données.
  • ManualStatusHandling: la spécification de cette valeur en tant que liste empêche toute gestion intégrée des requêtes HTTP dont la réponse comporte l’un de ces codes d’état.
  • RelativePath: la spécification de cette valeur en tant que texte l’ajoute à l’URL de base avant d’effectuer la requête.
  • Content: la spécification de cette valeur modifie la requête web d’une requête GET vers une publication post, en utilisant la valeur de l’option comme contenu de POST.

La requête HTTP est effectuée sous la forme d’une requête GET (quand aucun contenu n’est spécifié) ou d’une requête POST (lorsqu’il y a du contenu). Les requêtes POST peuvent uniquement être effectuées anonymement.

Les en-têtes de la réponse HTTP sont disponibles sous forme de métadonnées sur le résultat binaire. En dehors d’un contexte de connecteur de données personnalisé, seul un sous-ensemble d’en-têtes de réponse est disponible (pour des raisons de sécurité).

Exemple 1

Récupérez le contenu de l’utilisation des "https://bing.com/search?q=Power+Query" options et Query des RelativePath options. Ces options peuvent être utilisées pour interroger dynamiquement une URL de base statique.

Utilisation

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

Output

binary

Exemple 2

Effectuez une opération POST sur une URL, en passant une charge utile JSON binaire et en analysant la réponse en tant que JSON.

Utilisation

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

Output

table

Exemple 3

Connectez-vous à une URL sécurisée qui accepte une clé d’authentification dans le cadre de sa chaîne de requête. Au lieu de coder en dur la clé secrète dans M (ce qui pose un risque de sécurité), la clé peut être fournie en toute sécurité en spécifiant son nom (et non sa valeur) dans M, en choisissant l’authentification de l’API web et en entrant la valeur de clé dans le cadre des informations d’identification de l’API web. Lorsqu’il est utilisé de cette façon, l’exemple suivant génère une requête à "https://contoso.com/api/customers/get?api_key=******".

Utilisation

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

Output

binary

Plus d’informations

Gestion du code d’état avec Web.Contents dans les connecteurs personnalisés