Hi, I am calling WebService using httpbuilder but unable to read the output data.
Jira server version 7.7.2
I tried using httpbuilder and getting the results. But How I can read the each field values, which are getting response in text/xml format. Please see below code.
import groovyx.net.http.*
import static groovyx.net.http.ContentType.*
import static groovyx.net.http.Method.*
import groovyx.net.http.HTTPBuilder
import groovy.xml.*
import groovy.util.XmlParser
import groovy.util.XmlSlurper
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import groovy.json.JsonBuilder
import groovy.transform.BaseScript
import groovyx.net.http.ContentType
import groovyx.net.http.HTTPBuilder
import groovyx.net.http.Method
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.event.issue.AbstractIssueEventListener
import com.atlassian.jira.event.issue.IssueEvent
import groovy.sql.Sql
import java.sql.Connection
import java.sql.Timestamp
import org.ofbiz.core.entity.ConnectionFactory
import org.ofbiz.core.entity.DelegatorInterface
import org.apache.log4j.Category
def Category log = Category.getInstance("com.onresolve.jira.groovy.PostFunction")
// Set the logging level to DEBUG
log.setLevel(org.apache.log4j.Level.DEBUG);
//def String WSDL_URL = "http://URL-links"
def http = new HTTPBuilder( 'http://url-links' )
String soapEnvelope = """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.ws.pcr.pts.com/">
<soapenv:Header/>
<soapenv:Body>
<ser:prDetails>
<arg0>
<PRNumber>12345</PRNumber>
<systemPassword>USERPWD</systemPassword>
<systemUserID>USERNAME</systemUserID>
</arg0>
</ser:prDetails>
</soapenv:Body>
</soapenv:Envelope>"""
http.request( POST ) {
headers."Content-Type" = "txt/xml"
headers."Accept" = "application/soap+xml; charset=utf-8"
headers."SOAPAction" = "getDetails"
requestContentType = ContentType.XML
body=soapEnvelope
response.success = { resp, xml ->
log.debug "${xml}"
//THIS ONE NOT WORKING
//def xmlOutput = new XmlParser().parseText(xml)
//def casenumber = resp.children().find({it.name()=="caseNumber"})?.text()
//log.debug ""${casenumber}""
//log.debug " case number ${xmlOutput.caseNumber.toString()}"
}
response.failure = { resp, xml ->
log.debug "fail"
}
}