2016-03-29 11 views
5

Bu formatta bir web hizmetinden (Chargify) bir HTTP gönderiyi alan bir GRAILS 3 denetleyicim var (yük bölmesi çok sayıda alt alanla 100 girdiye sahip) :GRAILS ile FORM-ÖNERİLEN parametrelerin ayrıştırılması (web sayfalarını ayırt)

POST/HTTP/1.1 
Accept: */*; q=0.5, application/xml 
Accept-Encoding: gzip, deflate 
Content-Type: application/x-www-form-urlencoded 
X-Chargify-Webhook-Id: 81309408 
X-Chargify-Webhook-Signature: xxxxxxxxxxxxx 
X-Chargify-Webhook-Signature-Hmac-Sha-256: yyyyyyyyyyyyyy 
Content-Length: 48 
User-Agent: Ruby 
X-Newrelic-Id: xxxxxx 
X-Newrelic-Transaction: aaaaaaaaaaaaaa= 
Host: myhost.test.it 

id=81197881&event=statement_settled&payload[site][id]=12345&payload[site][subdomain]=test-sandbox 

"yük" bölümünü ayrıştırmak ve bir POJO (ya da basit bir HashMap) dinamik dönüştürmek için grails ile herhangi bir yolu var mı?. Chargify, GRAILS framework tarafından tanınmayan bu garip biçimi kullanın ve otomatik olarak çözümleyemiyorum.

Ayrıştırmada bana yardımcı olacak biri var mı? Yardım için teşekkürler.

+0

seni doğru anladıysam emin olmak için .. sonunda parçası Örneğiyle başlayan örnek, Yayın isteğinin gövdesi midir yoksa URL'nin bir parçası mı? – pczeus

+0

İsteğin gövdesi – Sarbyn

+0

İstek gövdesini otomatik olarak pogoya ayırmak için yerleşik bir yol göremiyorum. Başka alternatiflere açık mısınız? – pczeus

cevap

0

Bunu deneyebilir misiniz?

def readChargify() { 
    String requestData = request.reader.text 
    def reqMap = org.grails.web.util.WebUtils.fromQueryString(requestData) 
} 
+0

Örneğin, istek gövdesinden 'id = 81197881 & event = statement_settled & payload [site] [id] = 12345 & faydalı [site] [subdomain] = test-sandbox ' aşağıdaki gibi bir istek haritası oluşturacaktır: ' [ id: 81197881, olay: statement_settled, veriload [site] [id]: 12345, yarar [site] [subdomain]: test-sandbox] ve gibi bir iç içe geçmiş harita değil {id = '81197881', event = 'statement_settled', site = Site {subdomain = 'test-sandbox', id = '12345'}} ' – Sarbyn

İlgili konular