-1

初めてgrailsを使用して安らかなWebサービスを開発しています.GETリクエストへの簡単な応答を設定するためのgrailsドキュメントの第13章に従っています。

私が得られないのは、get 要求を行うクライアントを作成するために HTTPBuilder をセットアップすることです。jar httpbuilder をダウンロードしました。Restful クライアントは次のように定義されています。

import groovyx.net.http.*
import static groovyx.net.http.ContentType.JSON

def http = new HTTPBuilder("http://localhost:8080/amazon")

http.request(Method.GET, JSON) { url.path = '/book/list' response.success = { resp, json -> for (book in json.books) { println book.title } } }

彼らがクライアント用にカスタマイズしたコードは、定義された新しい HTTPBuilder クラスですか? はいの場合、このクラスをどこで定義する必要がありますか

現在、コントローラーで def を表示するための URL のルーティングがうまくいきません。

ありがとう

4

1 に答える 1

3

あなたのlocalhostサービスが何を返すべきかわからないので、あなたが何をしようとしているのか正確にはわかりません。本を探しているので、参考になるかもしれない Google のブック検索を使用した例を次に示します。必要に応じて Groovy コンソールで実行できるように書きましたが、grails でも動作します。

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.2' )

import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.ContentType.JSON
import static groovyx.net.http.Method.GET

def http = new HTTPBuilder("https://www.googleapis.com")

http.handler.failure = { resp, json ->
    println "it broke ${resp} ${json}"
}
http.get(path: '/books/v1/volumes', query:[q:'quilting']) { resp, json ->
    if (resp.status == 200) {
        json?.items.each {book ->
            println "${book?.volumeInfo?.title}"
        }
    } else {
        return [error:"Did not return a proper response: ${resp.status}"]
    }
}
于 2012-02-29T02:29:58.197 に答える