Share via


Web.Contents

Syntaxe

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

À propos

Retourne le contenu téléchargé à partir de url en tant que valeur binaire. Vous pouvez fournir un paramètre d’enregistrement facultatif, options, pour spécifier des propriétés supplémentaires. L’enregistrement peut contenir les champs suivants :

  • Query : ajoutez par programmation les paramètres de la requête à l’URL sans vous soucier du caractère d’échappement.
  • ApiKeyName : si le site cible utilise une clé d’API, ce paramètre peut être utilisé pour spécifier le nom (pas 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 : si cette valeur est spécifiée en tant qu’enregistrement, des en-têtes supplémentaires sont fournis à une requête HTTP.
  • Timeout : si cette valeur est spécifiée en tant que durée, le délai pour une requête HTTP change. La valeur par défaut est de 100 secondes.
  • ExcludedFromCacheKey : si cette valeur est spécifiée en tant que liste, ces clés d’en-tête HTTP sont exclues du calcul pour la mise en cache des données.
  • IsRetry : si cette valeur logique est spécifiée en tant que valeur true, les réponses existantes dans le cache sont ignorées durant la récupération des données.
  • ManualStatusHandling : si cette valeur est spécifiée en tant que liste, cela empêche la gestion intégrée des requêtes HTTP dont la réponse correspond à l’un des codes d’état indiqués.
  • RelativePath : si cette valeur est spécifiée en tant que texte, elle est ajoutée à l’URL de base avant d’effectuer la demande.
  • Content : si cette valeur est spécifiée, la requête web passe de GET à POST, et la valeur de l’option est utilisée comme contenu de POST.

La requête HTTP est effectuée en tant que GET (si aucun contenu n’est spécifié) ou POST (en présence de contenu). Les requêtes POST ne peuvent être effectuées que de manière anonyme.

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érer le contenu de "https://bing.com/search?q=Power+Query" avec les options RelativePath et Query. 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]
        ]
    )

Sortie

binary

Exemple 2

Effectuer une opération POST sur une URL, en passant une charge utile JSON binaire et en analysant la réponse au format 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

Sortie

table

Exemple 3

Se connecter à une URL sécurisée qui accepte une clé d’authentification dans sa chaîne de requête. Au lieu de coder en dur la clé secrète en M (ce qui constitue un risque pour la sécurité), la clé peut être fournie de manière sécurisée de la façon suivante  spécifiez son nom (et non sa valeur) en M, choisissez l’authentification d’API web et entrez la valeur de clé comme partie intégrante des informations d’identification de l’API web. Utilisé de cette façon, l’exemple suivant génère une demande envoyée à "https://contoso.com/api/customers/get?api_key=******".

Utilisation

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

Sortie

binary

Plus d’informations

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