Tôi đang cố gắng truy cập một trang web thông qua xuất JSON của họ.JSON trong Groovy/Grails
URL là: http://neotest.dabbledb.com/publish/neotest/f820728c-4451-41f6-b346-8cba54e52c6f/projects.jsonp
Tôi đang sử dụng HTTPBuilder để thử và thực hiện điều này trong Groovy, nhưng đang gặp khó khăn. Tôi đã sử dụng mã ví dụ từ http://groovy.codehaus.org/HTTP+Builder để đến với điều này:
// perform a GET request, expecting JSON response data
http.request(GET, JSON) {
url.path = 'publish/neotest/f820728c-4451-41f6-b346-8cba54e52c6f/projects.jsonp'
// response handler for a success response code:
response.success = { resp, json ->
println resp.statusLine
// parse the JSON response object:
json.responseData.results.each {
println " ${it.titleNoFormatting} : ${it.visibleUrl}"
}
}
}
Tuy nhiên, khi tôi chạy thử nghiệm đơn vị cho phương pháp này tôi chỉ đơn giản là có được No such property: GET for class: ProjectController groovy.lang.MissingPropertyException: No such property: GET for class: ProjectController
mà tôi đang gặp rắc rối hiểu biết.
Tôi không được kết nối với HTTPBuilder theo bất kỳ khoảng thời gian nào, nó chỉ là một vài trong số các mục Google được đề xuất cho cuộc gọi JSON từ Grails. Nếu có một giải pháp khác bạn muốn giới thiệu, tôi là tất cả vì nó, vì tôi không tiến bộ nhiều ở đây. – Kivus
Rất nhiều người khuyên bạn nên sử dụng HttpClient của Apache, mà Trình tạo HTTP xuất hiện dựa trên, vì vậy đây có thể là lựa chọn tốt nhất. Tôi chỉ cố gắng giúp giải quyết những gì dường như là một lỗi biên dịch trong kịch bản Groovy của bạn. Nếu Trình tạo HTTP không hoạt động, bạn chỉ có thể viết một số Java thẳng trong Groovy của bạn sử dụng HttpClient, hoặc thậm chí là java.net. *, Mặc dù nó sẽ có nhiều mã hơn một chút. –