Share via


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: 이 값을 지정하면 옵션 값을 POST의 콘텐츠로 사용하여 웹 요청이 GET에서 POST로 변경됩니다.

HTTP 요청은 GET(콘텐츠가 지정되지 않은 경우) 또는 POST(콘텐츠가 있는 경우)로 수행됩니다. POST 요청은 익명으로만 수행할 수 있습니다.

HTTP 응답의 헤더는 이진 결과에 대한 메타데이터로 사용할 수 있습니다. 사용자 지정 데이터 커넥터와 관련된 상황이 아닌 경우 보안상의 이유로 응답 헤더를 일부만 사용할 수 있습니다.

예 1

사용 Query 및 옵션의 "https://bing.com/search?q=Power+Query"RelativePath 내용을 검색합니다. 이러한 옵션은 정적 기본 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에서 이름(값 아님)을 지정하고, 웹 API 인증을 선택하고, 웹 API 자격 증명의 일부로 키 값을 입력하여 키를 안전하게 제공할 수 있습니다. 이러한 방식으로 사용될 경우 다음 예제는 "https://contoso.com/api/customers/get?api_key=******"에 대한 요청을 생성합니다.

사용법

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

출력

binary

자세한 정보

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