Skip To Content

Usa proxy

Quando si distribuisce un'app, può essere necessario utilizzare un proxy. Web AppBuilder supporta l'uso di proxy nelle situazioni seguenti:

  • Accesso a risorse interdominio
  • Richieste che superano i 2048 caratteri
  • Accesso a risorse protette tramite autenticazione basata su token
  • Account di accesso dell'app OAuth 2.0
  • Abilitare la registrazione
  • Limita la velocità in base sia alla risorsa che al referrer

Per impostazione predefinita, l'app scaricata utilizza il proxy messo a disposizione da Portal for ArcGIS. Specificare un proprio proxy e proprie regole modificando la proprietà httpProxy nel file di configurazione dell'app. La proprietà httpProxy include i seguenti attributi:

AttributoDescrizione

useProxy

Valore booleano. Facoltativo. Valore predefinito: true. Se il valore è false, nessuna richiesta utilizzerà un proxy.

URL

Stringa. Facoltativo. L'URL che specifica la posizione del proxy. Se la richiesta non corrisponde ad alcuna regola proxy, ma deve utilizzare un proxy, come nel caso di una richiesta interdominio, verrà utilizzato questo proxy.

alwaysUseProxy

Valore booleano. Facoltativo. Specifica se il proxy deve essere sempre usato per comunicare con un endpoint REST. Valore predefinito: false. Se la richiesta non corrisponde a nessuna regola proxy e non necessita di un proxy, l'app controlla questa proprietà per stabilire come utilizzare il proxy successivamente. Se la proprietà è false, la richiesta non passa tramite il proxy a cui si riferisce l'url. Viceversa, se la proprietà è true, la richiesta passa tramite il proxy a cui si riferisce l'url.

Regole

Oggetto[]. Facoltativo. Definisce il proxy di un gruppo di risorse con lo stesso prefisso dell'URL. Se l'URL richiesto corrisponde ad una regola, la richiesta viene instradata tramite il proxy. Ogni regola possiede due proprietà:

  • urlPrefix-string: prefisso URL delle risorse a cui bisogna accedere tramite il proxy specificato.
  • proxyUrl-string: URL del proxy.

Attenzione:

Quando useProxy è false e una richiesta è maggiore di 2048 caratteri, viene inviata una richiesta POST anziché GET. Inoltre, se il servizio supporta CORS, la richiesta POST può essere inviata direttamente al servizio senza problemi. In caso contrario, la richiesta POST non riesce. Quando useProxy è impostata su true e viene inviata una richiesta POST, se il servizio non supporta CORS, la richiesta POST verrà inviata automaticamente dal proxy.

Lo schema seguente illustra il funzionamento dei proxy in relazione agli attributi menzionati:

  • L'app controlla useProxy.
    • Se il valore è false, nessuna richiesta utilizzerà un proxy.
    • Se il valore è true, l'app controlla rules.
      • Se la richiesta corrisponde alle regole proxy, l'app utilizza il proxyUrl definito nelle regole.
      • Se la richiesta non corrisponde a nessuna regola proxy, ma richiede un proxy, come nel caso di una richiesta interdominio, l'app utilizzerà il proxy a cui si riferisce l'url.
      • Se la richiesta non corrisponde alle regole proxy e non richiede un proxy, l'app controlla anche alwaysUseProxy.
        • Se la proprietà è false, la richiesta non passa tramite il proxy a cui si riferisce l'url.
        • Viceversa, se la proprietà è true, la richiesta passa tramite il proxy a cui si riferisce l'url.
Diagramma relativo ai proxy

Esempio:

"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"
		}]
	}

Inoltre, Esri offre tre proxy, ognuno dei quali punta ad una specifica piattaforma lato server: ASP.NET, Java/JSP e PHP. Il proxy adatto alla propria piattaforma può essere scaricato e distribuito tramite GitHub. Inoltre, consultare gli esempi Usare il proxy eConfigurazione di un proxy con Web AppBuilder dal post di blog.