2010-04-07 9 views
5

Estoy tratando de leer el contenido del cuerpo de una solicitud de Grails y está mapeando la solicitud a los params aunque he comentado los grails.mime.types. También intenté establecer grails.mime.types en un mapa vacío y todavía está mapeando.¿Cómo accedo al contenido corporal de un POST en Grails?

El contenido del cuerpo es xml y cuando Grails lo mapea, la clave termina siendo "<? Xml version". Desafortunadamente, el sistema que envía la POST está configurando el tipo de contenido como application/x-www-form-urlencoded. No tengo control sobre ellos cambiándolo.

Estoy ejecutando Grails 1.2.1.

También intenté establecer format = "xml" en mis UrlMappings y agregué el tipo de contenido de formulario a xml mime.types, pero tampoco sirvió de nada. Y cuando intento acceder al request.reader, está vacío.

Respuesta

0

Pruebe habilitar 'parseRequest' en su mapeo.

Del docs: "Grails no proporcionará referencias automáticas XML o JSON para usted a menos que especifique el argumento parseRequest en la asignación de URL".

+0

La página web debe haber cambiado. La búsqueda de "parseRequest" no produce nada. –

+0

No hay "parseRequest" en la página a la que apunta la URL determinada. – Jason

0

Si desea acceder a la request.reader directamente en lugar de tener el XML unmarshalled a un objeto de dominio, a continuación, tratar de apagar parseRequest así:

urlMappings clase {

static mappings = { 
    "/$controller/$action?/$id?"(parseRequest:false){ 
     constraints { 
      // apply constraints here 
     } 
    } 

    "/"(view:"/index") 
    "500"(view:'/error') 
} 

}

que tiene esta solución de: http://margotskapacs.com/2013/04/request-automatic-parsing-in-grails/

Cuestiones relacionadas