Pirámide que reemplaza doble barra diagonal en URL Matchdict

Básicamente, solo estoy creando una ruta de redireccionamiento de API dentro de Pyramid para procesar solicitudes AJAX de dominio cruzado sin usar JSONP.

He añadido una ruta, como así:

config.add_route("api","/api/{url:.*}") 

con la que quiero capturar URLs asi:

 http://domain.com/api/http://location.of/other/api 

Sin embargo, al capturar el sufijo de URL capturado fuera del Petición de coincidencia de solicitud, obtengo lo siguiente:

 http:/location.of/other/api 

¿Supongo que se ha hecho un escape durante el procesamiento / comparación de URL? ¿Cómo puedo evitar esto y obtener la URL deseada con dos barras diagonales?

Incluso si paso la URL como un parámetro GET, el problema permanece. Tal vez es algo que ver con la forma en que funcionan los multidictos de Pyramid?

Esta es una limitación fundamental de cualquier aplicación basada en WSGI. Las URL se urldecoded y las barras diagonales se compactan antes de que la URL se pase a la aplicación WSGI. Si desea conservar las barras diagonales, deberá codificarlos dos veces. AFAIK no hay forma de evitar esto utilizando una cadena de consulta.

Supongo que debo señalar que la URL original está disponible, pero a partir de ella tendrá que analizar la parte que le interesa. Está en request.url . request.path_info es lo que Pyramid y la mayoría de las aplicaciones WSGI utilizan para enviar URL porque contiene solo la ruta secundaria que es relativa a donde se monta la aplicación.