3
我想用Groovy HTTPBuilder發送POST,但是我想發送的數據已經被URL編碼了,所以我想讓HTTPBuilder按照原樣發佈。我試過如下:用groovy和數據發送POST已經被URL編碼了
def validationString = "cmd=_notify-validate&" + postData
def http = new HTTPBuilder(grailsApplication.config.grails.paypal.server)
http.request(Method.POST) {
uri.path = "/"
body = validationString
requestContentType = ContentType.TEXT
response.success = { response ->
println response.statusLine
}
}
但它給了我一個NullPointerException:
java.lang.NullPointerException
at groovyx.net.http.HTTPBuilder$RequestConfigDelegate.setBody(HTTPBuilder.java:1200)
非常感謝,我會嘗試一下。也就是說,爲了公平起見,您的方法還涉及一些非基本的源代碼逆向工程,以查找不在文檔中的信息。這是我通常所做的事情,但根據經驗,Groovy由於所有的DSL和動態方法而特別雜亂,所以我傾向於將這些問題像消息一樣放在瓶子中,而我繼續像您一樣進行搜索有人已經想出了這個魔術,並且可以使我的搜索更快捷。在目前的情況下,你在我做之前就明白了。這就是說,我仍然必須嘗試它... – Sebastien
@Sebastien我根本沒有看源代碼;上面列出的步驟正是我所做的/看過的。我會更新以更明確地表示我只查看了請求方法文檔。 –