Использовать прокси

При развертывании приложения вам может понадобиться прокси. Web AppBuilder поддерживает работу с прокси в следующих ситуациях:

  • Доступ к междоменным ресурсам
  • Запросы, превышающие 2048 символов
  • Доступ к ресурсам, защищенным аутентификацией на основе токенов
  • Учетные записи приложения OAuth 2.0
  • Включение журналирования
  • Ограничение скорости на основе ресурса и источника

По умолчанию загруженное приложение использует прокси ArcGIS Online. Укажите свой прокси и правила, изменив свойство httpProxy в файле конфигурации приложения. Свойство httpProxy содержит следующие атрибуты:

АтрибутОписание

useProxy

Boolean. Необязательно. По умолчанию: true. Если значение равно false, все запросы не будут использовать прокси.

url

Строка. Необязательно. URL местоположения прокси. Если запрос не соответствует правилам прокси, но должен его использовать, например при междоменном запросе, прокси будет использоваться.

alwaysUseProxy

Boolean. Необязательно. Определят, будет ли всегда использоваться прокси для связи с конечной точкой REST. По умолчанию: false. Если запрос не соответствует никакому правилу прокси и не нуждается в прокси, приложение проверит это свойство, чтобы определить, каким образом использовать прокси в дальнейшем. Если false, запрос не проходит через url указанного прокси. Если true, запрос проходит через url указанного прокси.

правила

Object[]. Необязательно. Задает прокси для набора ресурсов с одинаковым префиксом URL. Если URL запроса соответствует правилу, запрос проходит через прокси. У каждого правила есть два свойства:

  • urlPrefix-string – URL-префикс для ресурсов, доступ к которым должен осуществляться через данный прокси.
  • proxyUrl-string – URL-адрес прокси.

Внимание:

Когда для useProxy задано false, а запрос более 2048 знаков, отсылается запрос POST вместо GET. Также, если сервис поддерживает CORS, запрос POST может быть успешно отослан непосредственно к сервису. Иначе запрос POST не сработает. Когда для useProxy задано true и отправляется запрос POST, если сервис не поддерживает CORS, запрос POST будет отправлен прокси-сервером автоматически.

Ниже показывается, как работает прокси с описанными выше атрибутами:

  • Приложение проверяет useProxy.
    • Если оно равно false, все запросы не используют прокси.
    • Если true, приложение проверяет rules.
      • Если запрос соответствует правилам прокси, приложение использует свойство proxyUrl, заданное в правилах.
      • Если же запрос не соответствует правилам прокси, но должен его использовать, например, при междоменном запросе, приложение использует свойство url указанного прокси.
      • Если запрос не соответствует правилам прокси или не должен его использовать, приложение продолжает проверять свойство alwaysUseProxy.
        • Если false, запрос не проходит через url указанного прокси.
        • Если true, запрос проходит через url указанного прокси.
Диаграмма прокси

Пример:

"httpProxy": {
		"useProxy": true,
		"url": "http://gallery.chn.esri.com/arcgis/sharing/proxy",
		"alwaysUseProxy": false,
		"rules": [{
			"urlPrefix": "http://route.arcgis.com/",
			"proxyUrl": "resource-proxy-1.0/DotNet/proxy.ashx"
		}]
	}