那麼我是Groovy/Grails的新手。我編寫了一個使用RESTClient向JIRA服務器發送HTTP POST請求的Groovy腳本。 POST請求發送JQL查詢並以JSON格式接收結果。以下是完整的代碼:Groovy腳本到Grails應用程序
import groovyx.net.http.RESTClient;
import groovyx.net.http.HttpResponseDecorator;
import org.apache.http.HttpRequest;
import org.apache.http.protocol.HttpContext;
import org.apache.http.HttpRequestInterceptor;
import groovy.json.JsonSlurper;
import static groovyx.net.http.Method.*
import static groovyx.net.http.ContentType.*
@Grab(value = 'org.codehaus.groovy:groovy-all:2.1.6',
initClass = false)
@Grapes([
@Grab(group = 'org.codehaus.groovy.modules.http-builder',
module = 'http-builder', version = '0.5.2'),
@GrabExclude('org.codehaus.groovy:groovy')
])
// connect to JIRA
def jiraApiUrl = 'http://my-jira.com/rest/api/2/'
def jiraClient = new RESTClient(jiraApiUrl);
// authentication
def basic = 'Basic ' + 'username:password'.bytes.encodeBase64().toString()
jiraClient.client.addRequestInterceptor (
new HttpRequestInterceptor() {
void process(HttpRequest httpRequest,
HttpContext httpContext) {
httpRequest.addHeader('Authorization', basic)
}
})
// http post method
def uriPath = 'search'
def param = [maxResults : 1, jql : '<jql-query>']
def Issues = jiraClient.post(requestContentType : JSON, path : uriPath, body : param)
def slurpedIssues = new JsonSlurper().parseText(Issues.data.toString())
println Issues.data.total
我需要將此腳本遷移到Grails應用程序。有關如何做同樣的建議?
感謝您的答覆!非常感激。 我添加了依賴關係並將腳本複製到** Controller **。當我從Web瀏覽器訪問控制器時,它給了我一個NullPointerException。 「消息:無法調用空對象上的方法post() 服務中發生的情況也是如此。有什麼建議麼? –
聽起來像'jiraClient'爲空。值得檢查,如果你正確地初始化它。 – Armand
感謝您的提示!初始化時出現問題。但現在得到一個新的NullPointerException。嘆!同一行,'def Issues = jiraClient.post(requestContentType:JSON,路徑:uriPath,body:param)'。 「消息:null」。 –