다음을 통해 공유


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

RelativePathQuery 옵션을 사용하여 "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 사용하여 상태 코드 처리