Utilización del proxy en su aplicación web

Esta sección describe cómo utilizar el proxy en su aplicación web.

Importación del archivo ria.js

El primer paso es importar OpenLayers y la biblioteca principal API de JavaScript. Para esto, haga lo siguiente:


<script type="text/javascript" src="http://<server>:<port>/ria/openlayers/OpenLayers.js"></script>			
<script type="text/javascript" src="http://<server>:<port>/ria/ria.js"></script>
			

Reemplace localhost:8080 por el nombre de host real y el número de puerto en el que está instalada la API de JavaScript.

Para exponer públicamente los componentes API de JavaScript en su aplicación web, todos los recursos javascript que se descargarán deben estar en una URL de acceso público (y todas las URL dentro de esos archivos js también deben ser de acceso público).

Defina la ruta hacia su proxy.

Para indicar que las invocaciones entre dominios se deben enrutar a través de un proxy, la ruta del proxy se debe registrar de la siguiente manera:


ria.RestService.addProxy("/riaproxy/?url=");
			

En lugar de invocar una dirección URL directamente a un dominio diferente, el código de la biblioteca de JavaScript anexará la dirección URL codificada al extremo de la ruta registrada con anterioridad y usará el resultado para realizar la solicitud. El proxy toma la dirección URL desde el parámetro de la solicitud (por dirección url predeterminada), solicita el recurso relacionado con este y envía el resultado de vuelta hacia el código de la biblioteca de JavaScript sin ninguna modificación. La ruta exacta que se pasa para el método addProxy() depende de qué proxy se esté usando y cómo se implemente.

Nota: La ruta anterior es la predeterminada para el proxy Java Servlet. Para el proxy IIS, use la ruta /riaproxy/Proxy.aspx?url=.

Ejemplo de código

Una página básica para realizar una búsqueda de características:


<!DOCTYPE html>
<html>
    <head>
        <script src="http://<server>:<port>/ria/openlayers/OpenLayers.js"></script>
        <script src="http://<server>:<port>/ria/ria.js"></script>
    </head>
    <body>
        <button onclick="search();">Search</button>
        <script>
			ria.RestService.addProxy("/riaproxy/?url=");
            function search() {
                var fs = new ria.search.FeatureService(
                        "http://<server>:<port>/rest/Spatial/FeatureService");
                var d = fs.searchNearest({
                    table: "/Samples/NamedTables/WorldcapTable",
                    geometry: new OpenLayers.Geometry.Point(12.875977, 47.813155),
                    srs: "epsg:4326",
                    attributes: ["Capital"],
                    withinDistance: "2000 mi",
                    distanceAttributeName: "dist",
                    maxFeatures: 10
                });
                d.addCallback(function(result) {alert(result.features.length + " result(s)")});
            }
        </script>       
    </body>
</html
			

Pruebe esta aplicación web de ejemplo al visualizarla en su navegador y hacer clic en Search (Buscar).

Aparece un diálogo que muestra los resultados de la búsqueda de características:

En un depurador web como Fiddler, puede ver una lista de los 10 resultados:

{"type":"FeatureCollection","Metadata":[{"type":"String","name":"Capital"},
{"type":"Double","name":"dist"}],"features":[{"type":"Feature","properties"
:{"Capital":"Ljubljana","dist":143.84489998699985}},{"type":"Feature","properties" 
:{"Capital":"Vienna","dist":161.4848812627603}},{"type":"Feature","properties"
:{"Capital":"Vaduz","dist":163.332701859974}},{"type":"Feature","properties"
:{"Capital":"Prague","dist":173.87473824107374}},{"type":"Feature","properties"
:{"Capital":"Bratislava","dist":198.09553406882614}},{"type":"Feature","properties"
:{"Capital":"Zagreb","dist":201.31855154101802}},{"type":"Feature","properties"
:{"Capital":"Bern","dist":260.92616074609}},{"type":"Feature","properties"
:{"Capital":"San Marino","dist":267.4791030110629}},{"type":"Feature","properties"
:{"Capital":"Budapest","dist":290.00905102083885}},{"type":"Feature","properties"
:{"Capital":"Berlin","dist":325.56576583498344}}]}

Solución de problemas de un proxy .NET

Si se encuentra una excepción en la solicitud de servicio remoto o hay un problema con la autenticación, el código de estado HTTP, la descripción, los encabezados, la URL y el cuerpo html (si está disponible) se insertan en un registro de eventos. Este registro aparece en Microsoft Event Viewer como "Pitney Bowes Proxy Service" (Servicio proxy de Pitney Bowes).