Поделиться через


Поддержка работы с прокси-серверами

В этой статье описывается, как включить поддержку прокси-сервера в пользовательском соединителе Power Query с помощью пакета SDK Power Query.

Параметры прокси-сервера Windows

Сначала необходимо настроить параметры прокси-сервера в Windows. Существует два способа настройки прокси-сервера с помощью параметров Интернета или параметров Сети и Интернета.

Параметры Интернета

  1. В меню "Пуск" Windows найдите и откройте параметры браузера.
  2. Перейдите на вкладку "Подключения".
  3. Выберите параметры локальной сети.
  4. В разделе "Прокси-сервер" настройте прокси-сервер.

Сеть и Интернет

  1. В меню "Пуск" Windows выберите значок "Параметры ".
  2. В разделе "Параметры" выберите "Сеть" и "Интернет " (Windows 10) или щелкните значок "Открыть навигацию " и выберите "Сеть" и "Интернет " (Windows 11).
  3. Выберите прокси-сервер.
  4. В разделе настройки прокси-сервера вручную переключите кнопку "Использовать прокси-сервер " (Windows 10) или нажмите кнопку "Настройка " и нажмите кнопку "Использовать прокси-сервер " (Windows 11).
  5. Настройте адрес и порт.

Включение поддержки прокси-сервера

Функция Web.DefaultProxy добавлена в модуль расширяемости. Сторонние соединители M могут использовать эту функцию для получения параметров веб-прокси, которые необходимо задать в свойствах драйвера (если прокси-сервер включен, как описано в параметрах прокси-сервера Windows).

Сведения о прокси-сервере можно задать в строке подключения в отношении параметра подключения, который может различаться в зависимости от коннекторов. Учетные данные прокси-сервера (имя пользователя и пароль) не поддерживаются. Web.DefaultProxy принимает значение serverUri/host в качестве параметра и возвращает запись, содержащую URI прокси-сервера в качестве ProxyUri поля записи. Чтобы получить составляющие URI (например, схемы, узла, порта) внутри соединителя, используйте Uri.Parts.

Если прокси-сервер не настроен, Web.DefaultProxy возвращает пустую запись.

Пример использования

Пример 1

Чтобы использовать Web.DefaultProxy в коде соединителя, переменная логического типа может быть использована, чтобы включить или отключить использование этой функции. В этом примере Web.DefaultProxy вызывается в коде соединителя, если необязательный логический параметр UseWebDefaultProxy имеет значение true (по умолчанию – false).

UseWebDefaultProxyOption = options[UseWebDefaultProxy]?,
ProxyUriRecord = if UseWebDefaultProxyOption then Web.DefaultProxy(Host) else null,
ProxyOptions = if Record.FieldCount(ProxyUriRecord) > 0 then
      [
            Proxy = ProxyUriRecord[ProxyUri]
      ]
      else [],
      ...

После того как UseWebDefaultProxy установлено в значение true и ProxyUriRecord получено, можно создать запись, чтобы задать Proxy (параметр конфигурации, поддерживаемый драйвером, который может различаться) с полем ProxyUri, возвращаемым Web.DefaultProxy. Его можно назвать примерно так ProxyOptions. Затем эту запись можно добавить в базу ConnectionStringи включить сведения о прокси-сервере вместе с ней.

Databases = Odbc.DataSource(ConnectionString & ProxyOptions, Options)

Пример 2

Если существует несколько параметров конфигурации, используемых драйвером для настройки сведений о прокси-сервере (например, сведения о узле и порту, обрабатываемые отдельно), Uri.Parts можно использовать.

UseWebDefaultProxyOption = options[UseWebDefaultProxy]?,
ProxyRecord = if UseWebDefaultProxyOption then Web.DefaultProxy(Host) else null,
UriRecord = if ProxyRecord <> null then Uri.Parts(ProxyRecord) else null,
ProxyOptions = if UriRecord <> null then
    [
        ProxyHost = UriRecord[Scheme] & "://" & UriRecord[Host],
        ProxyPort = UriRecord[Port]
    ]
    else [],
    ...