2010-04-07 19 views
5

Grails isteğinin gövde içeriğini okumaya çalışıyorum ve grails.mime.types'i açıklamamıza rağmen isteği paramiklerle eşleştiriyor. Ayrıca grails.mime.types öğesini boş haritalar ve haritayı da ayarlamayı denedim ve hala haritalanıyor.Grails'deki bir POST'un gövde içeriğine nasıl erişirim?

Gövde içeriği xml'dir ve Grails eşleştiğinde, anahtar "<? Xml sürümü" olarak biter. Ne yazık ki, POST gönderen sistem içerik tipini uygulama/x-www-form-urlencoded olarak ayarlıyor. Onları değiştirmek için kontrolüm yok.

Grails 1.2.1'i çalıştırıyorum.

UrlMappings'imde format = "xml" ayarlamayı ve xml mime.types'e form içerik türünü eklemeyi denedim, ancak bu da işe yaramadı. Ve request.reader'a erişmeye çalıştığımda boş.

cevap

0

Eşlemenizde 'parseRequest' özelliğini etkinleştirmeyi deneyin.

docs'dan: "URL eşlemesinde parseRequest argümanını belirtmediğiniz sürece, grails sizin için otomatik XML veya JSON marşlama sağlamayacaktır".

+0

Web sayfası değişmiş olmalıdır. "ParseRequest" araması hiçbir şey vermez. –

+0

Belirtilen URL'nin işaret ettiği sayfada "parseRequest" bulunmuyor. – Jason

0

Bir etki alanı nesnesine unmarshalled XML sahip yerine doğrudan request.reader erişmek istiyorsanız, o zaman bu gibi parseRequest kapatmayı deneyin:

sınıf UrlMappings {

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

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

}

Bu çözümü aldım: http://margotskapacs.com/2013/04/request-automatic-parsing-in-grails/

İlgili konular