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 및 쿼리 옵션을 사용하는 내용을 "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

자세한 정보

사용자 지정 커넥터에서 Web.Contents 사용하여 상태 코드 처리