Web.Contents
Syntax
Web.Contents(url as text, optional options as nullable record) as binary
Om
Returnerar det innehåll som laddats ned från url som binär. Ytterligare egenskaper kan anges genom att en valfri postparameter, options, tillhandahålls. Posten kan innehålla följande fält:
Query: Lägg programmässigt till frågeparametrar i URL:en utan att behöva oroa dig för undantag.ApiKeyName: Om målplatsen har ett begrepp för en API-nyckel kan den här parametern användas för att ange namnet (inte värdet) för den nyckelparameter som måste användas i URL:en. Det faktiska nyckelvärdet anges i autentiseringsuppgiften.Headers: Om du anger det här värdet som en post skapas fler huvuden i en HTTP-begäran.Timeout: Om du anger det här värdet som en varaktighet ändras tidsgränsen för en HTTP-begäran. Standardvärdet är 100 sekunder.ExcludedFromCacheKey: Om du anger det här värdet som en lista kommer dessa HTTP-huvudnycklar inte att ingå i beräkningen för cachelagring av data.IsRetry: Om du anger det här logiska värdet som sant ignoreras eventuellt befintligt svar i cacheminnet vid hämtning av data.ManualStatusHandling: Om du anger det här värdet som en lista förhindras all inbyggd hantering för HTTP-begäranden vars svar har en av dessa statuskoder.RelativePath: Om du anger det här värdet som text läggs det till i bas-URL:en innan begäran görs.Content: Om du anger det här värdet ändras webbegäran från en GET till en POST, och alternativets värde används som innehållet i POST.
HTTP-begäran görs antingen som en GET (när inget innehåll har angetts) eller en POST (när det finns innehåll). POST-begäranden får endast göras anonymt.
Huvudet i HTTP-svaret är tillgängligt som metadata i det binära resultatet. Utanför en anpassad dataanslutningskontext är endast en delmängd av svarshuvuden tillgängliga (av säkerhetsskäl).
Exempel 1
Hämta innehållet i "https://bing.com/search?q=Power+Query" med alternativen RelativePath och Query . Dessa alternativ kan användas för att dynamiskt fråga en statisk bas-URL.
Användning
let
searchText = "Power Query"
in
Web.Contents(
"https://www.bing.com",
[
RelativePath = "search",
Query = [q = searchText]
]
)
Resultat
binary
Exempel 2
Utför en POST mot en URL, skicka en binär JSON-nyttolast och parsa svaret som JSON.
Användning
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
Resultat
table
Exempel 3
Anslut till en säker URL som accepterar en autentiseringsnyckel som en del av frågesträngen. I stället för att hårdkoda den hemliga nyckeln i M (vilket skulle utgöra en säkerhetsrisk) kan nyckeln tillhandahållas på ett säkert sätt genom att ange dess namn (inte dess värde) i M, välja webb-API-autentisering och ange nyckelvärdet som en del av webb-API-autentiseringsuppgiften. När det används på det här sättet genererar följande exempel en begäran till "https://contoso.com/api/customers/get?api_key=******".
Användning
Web.Contents("https://contoso.com/api/customers/get", [ApiKeyName="api_key"])
Resultat
binary