2010-04-07 27 views
5

Tôi đang cố gắng đọc nội dung của yêu cầu Grails và nó ánh xạ yêu cầu đến các tham số mặc dù tôi đã nhận xét ra grails.mime.types. Tôi cũng đã cố gắng thiết lập grails.mime.types và bản đồ trống và nó vẫn là ánh xạ.Làm cách nào để truy cập nội dung của POST trong Grails?

Nội dung nội dung là xml và khi Grails ánh xạ, khóa kết thúc bằng "<? Xml phiên bản". Rất tiếc, hệ thống gửi POST đang đặt loại nội dung thành ứng dụng/x-www-form-urlencoded. Tôi không có quyền kiểm soát họ thay đổi nó.

Tôi đang chạy Grails 1.2.1.

Tôi cũng đã thử đặt định dạng = "xml" trong UrlMappings của tôi và thêm loại nội dung biểu mẫu vào mime.types xml nhưng điều đó cũng không giúp ích gì. Và khi tôi cố truy cập request.reader, nó trống.

Trả lời

0

Thử bật 'parseRequest' trong ánh xạ của bạn.

Từ docs: "Grails sẽ không cung cấp tự động XML hoặc JSON marshaling cho bạn trừ khi bạn chỉ định đối số parseRequest trong ánh xạ URL".

+0

Trang web phải thay đổi. Tìm kiếm "parseRequest" không mang lại kết quả gì. –

+0

Không có "parseRequest" trên trang mà URL đã cho trỏ đến. – Jason

0

Nếu bạn muốn truy cập vào request.reader trực tiếp thay vì phải XML unmarshalled đến một đối tượng tên miền, sau đó thử tắt parseRequest như thế này:

lớp UrlMappings {

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

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

}

Tôi nhận được giải pháp này từ: http://margotskapacs.com/2013/04/request-automatic-parsing-in-grails/

Các vấn đề liên quan