带有 URL 的 Grails 中的 HTTP GET 请求
HTTP GET request in Grails with urls
我在带有 urls 的 Grails 中使用 HTTP GET 请求时遇到问题。我的计划是从 url 中读取保存的参数。就像有一个名为地址的参数,其中包含保存的内容。例如:http://mydomain.de/property?address=Alexanderplatz+3%2C+Berlin%2C+Deutschland=&submit=start。
在这里,我将输入的地址提交到 url。还有另一个页面,在单击提交按钮后我将在该页面上被重定向,并且有一个带有名为 "address" 的输入字段的表单。在此输入字段中,我想将给定 url 中保存的地址提交为默认值。我是否需要以特殊方式配置我的 grails-app 的控制器?我有以下功能:
def create() {
render(view: "form")
}
如何在 Grails 中执行 HTTP GET 请求?
使用HttpBuilder:
def http = new HTTPBuilder('http://www.google.com')
http.get( path : '/search',
contentType : TEXT,
query : [q:'Groovy'] ) { resp, reader ->
println "response status: ${resp.statusLine}"
System.out << reader
}
更新:
BuildConfig.groovy:
grails.project.dependency.resolution = {
...
dependencies {
compile( 'org.codehaus.groovy.modules.http-builder:http-builder:0.5.2' ){ excludes 'groovy', 'xercesImpl' }
}
}
我在这里找到了完美的解决方案:Grails pass data to view from controller
在PropertiyController.groovy中:
def index = {
def parameter =
request.getParameter("address")
}
和:
def create() {
def address = params.address;
render(view: "form", model:[viewAddress:address]);
}
唯一需要额外更改的是为输入字段提供缺少的参数链接:
value="${viewAddress}"
完美运行!
对于那些后来像我一样遇到这个问题的人。
看起来 HTTPBuilder 有一个针对 Grails 3 的新版本:
https://github.com/http-builder-ng/http-builder-ng
这里有一些很好的例子:
https://http-builder-ng.github.io/http-builder-ng/asciidoc/html5/
我在带有 urls 的 Grails 中使用 HTTP GET 请求时遇到问题。我的计划是从 url 中读取保存的参数。就像有一个名为地址的参数,其中包含保存的内容。例如:http://mydomain.de/property?address=Alexanderplatz+3%2C+Berlin%2C+Deutschland=&submit=start。 在这里,我将输入的地址提交到 url。还有另一个页面,在单击提交按钮后我将在该页面上被重定向,并且有一个带有名为 "address" 的输入字段的表单。在此输入字段中,我想将给定 url 中保存的地址提交为默认值。我是否需要以特殊方式配置我的 grails-app 的控制器?我有以下功能:
def create() {
render(view: "form")
}
如何在 Grails 中执行 HTTP GET 请求?
使用HttpBuilder:
def http = new HTTPBuilder('http://www.google.com')
http.get( path : '/search',
contentType : TEXT,
query : [q:'Groovy'] ) { resp, reader ->
println "response status: ${resp.statusLine}"
System.out << reader
}
更新:
BuildConfig.groovy:
grails.project.dependency.resolution = {
...
dependencies {
compile( 'org.codehaus.groovy.modules.http-builder:http-builder:0.5.2' ){ excludes 'groovy', 'xercesImpl' }
}
}
我在这里找到了完美的解决方案:Grails pass data to view from controller
在PropertiyController.groovy中:
def index = {
def parameter =
request.getParameter("address")
}
和:
def create() {
def address = params.address;
render(view: "form", model:[viewAddress:address]);
}
唯一需要额外更改的是为输入字段提供缺少的参数链接:
value="${viewAddress}"
完美运行!
对于那些后来像我一样遇到这个问题的人。
看起来 HTTPBuilder 有一个针对 Grails 3 的新版本:
https://github.com/http-builder-ng/http-builder-ng
这里有一些很好的例子:
https://http-builder-ng.github.io/http-builder-ng/asciidoc/html5/