Web.Contents
통사론
Web.Contents(url as text, optional options as nullable record) as binary
소개
url
에서 다운로드한 콘텐츠를 이진 데이터로 반환합니다. 추가 속성을 지정하기 위해 선택적 레코드 매개 변수인 options
제공할 수 있습니다. 레코드에는 다음 필드가 포함될 수 있습니다.
-
Query
: 이스케이프에 대해 걱정할 필요 없이 프로그래밍 방식으로 URL에 쿼리 매개 변수를 추가합니다. -
ApiKeyName
: 대상 사이트에 API 키의 개념이 있는 경우 이 매개 변수를 사용하여 URL에 사용해야 하는 키 매개 변수의 이름(값이 아님)을 지정할 수 있습니다. 실제 키 값은 자격 증명에 제공됩니다. -
Headers
: 이 값을 레코드로 지정하면 HTTP 요청에 추가 헤더가 제공됩니다. -
Timeout
: 이 값을 기간으로 지정하면 HTTP 요청에 대한 시간 제한이 변경됩니다. 기본값은 100초입니다. -
ExcludedFromCacheKey
: 이 값을 목록으로 지정하면 이러한 HTTP 헤더 키가 데이터 캐싱 계산에 포함되지 않습니다. -
IsRetry
: 이 논리 값을 true로 지정하면 데이터를 가져올 때 캐시의 기존 응답이 무시됩니다. -
ManualStatusHandling
: 이 값을 목록으로 지정하면 응답에 이러한 상태 코드 중 하나가 있는 HTTP 요청에 대한 기본 제공 처리가 차단됩니다. -
RelativePath
: 이 값을 텍스트로 지정하면 요청을 만들기 전에 기본 URL에 추가됩니다. -
Content
: 이 값을 지정하면 웹 요청이 GET에서 POST로 변경되며, 옵션 값을 POST의 콘텐츠로 사용합니다.
HTTP 요청은 GET(콘텐츠가 지정되지 않은 경우) 또는 POST(콘텐츠가 있는 경우)로 이루어집니다. POST 요청은 익명으로만 할 수 있습니다.
HTTP 응답의 헤더는 이진 결과에 대한 메타데이터로 사용할 수 있습니다. 사용자 지정 데이터 커넥터 컨텍스트 외부에서는 보안상의 이유로 응답 헤더의 하위 집합만 사용할 수 있습니다.
예제 1
RelativePath
및 Query
옵션을 사용하여 "https://bing.com/search?q=Power+Query"
내용을 검색합니다. 이러한 옵션은 정적 기본 URL을 동적으로 쿼리하는 데 사용할 수 있습니다.
사용량
let
searchText = "Power Query"
in
Web.Contents(
"https://www.bing.com",
[
RelativePath = "search",
Query = [q = searchText]
]
)
출력
binary
예제 2
URL에 대해 POST를 수행하여 이진 JSON 페이로드를 전달하고 응답을 JSON으로 구문 분석합니다.
사용량
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
출력
table
예제 3
인증 키를 쿼리 문자열의 일부로 허용하는 보안 URL에 연결합니다. M에서 비밀 키를 하드 코딩하는 대신(보안 위험이 발생할 수 있음) M에서 해당 이름(값이 아님)을 지정하고, Web API 인증을 선택하고, Web API 자격 증명의 일부로 키 값을 입력하여 키를 안전하게 제공할 수 있습니다. 이와 같이 사용하면 다음 예제가 "https://contoso.com/api/customers/get?api_key=******"
에 요청을 생성하게 됩니다.
사용량
Web.Contents("https://contoso.com/api/customers/get", [ApiKeyName="api_key"])
출력
binary