I am having problems with a simple HTTP GET command parsing of the return. I usually use HubAction to send the command, but need an explicit response before continuing to the next step in the method. Obviously I am missing something, but I am at a loss.
Below are two elements:
- method newSendCmd which calls the post and response (I added some elements to document the return data in log.
- log of the response (shows problem in two errors on XmlSlurper and XmlParser).
Method newSendCmd:
private newSendCmd(command){ def host = "http://192.168.0.127:55001" httpGet("${host}${command}") { response -> log.info "status: ${response.getStatus()}" log.info "contentType: ${response.getContentType()}" log.info "data: ${response.getData()}" log.info "context: ${response.getContext()}" log.info "entity: ${response.getEntity()}" log.info "locale: ${response.getLocale()}" log.info "tatusLine: ${response.getStatusLine()}" def data = response.data log.debug data def cmdResp = "DID NOT WORK" try { cmdResp = new XmlParser().parseText(data) } catch (error) { log.error "XmlParser: ${error}" } try { cmdResp = new XmlSlurper().parseText(data) } catch (error) { log.error "XmlSlurper: ${error}" } log.debug cmdResp } }
Log Data:
dev:27572019-04-29 12:32:04.669 pm debugDID NOT WORK
dev:27572019-04-29 12:32:04.665 pm errorXmlSlurper: groovy.lang.MissingMethodException: No signature of method: groovy.util.XmlSlurper.parseText() is applicable for argument types: (groovy.util.slurpersupport.NodeChild) values: [MuteStatus1.0192.168.0.127publicoff] Possible solutions: parseText(java.lang.String), parse(java.io.File), parse(java.io.InputStream), parse(java.io.Reader), parse(java.lang.String), parse(org.xml.sax.InputSource)
dev:27572019-04-29 12:32:04.657 pm errorXmlParser: groovy.lang.MissingMethodException: No signature of method: groovy.util.XmlParser.parseText() is applicable for argument types: (groovy.util.slurpersupport.NodeChild) values: [MuteStatus1.0192.168.0.127publicoff] Possible solutions: parseText(java.lang.String), parse(java.io.File), parse(java.io.InputStream), parse(java.io.Reader), parse(java.lang.String), parse(org.xml.sax.InputSource)
dev:27572019-04-29 12:32:04.645 pm debugMuteStatus1.0192.168.0.127publicoff
dev:27572019-04-29 12:32:04.641 pm infotatusLine: HTTP/1.1 200 OK
dev:27572019-04-29 12:32:04.639 pm infolocale: en_US
dev:27572019-04-29 12:32:04.638 pm infoentity: ResponseEntityProxy{[Content-Type: text/html,Content-Length: 224,Chunked: false]}
dev:27572019-04-29 12:32:04.637 pm infocontext: groovyx.net.http.HttpContextDecorator@187f8318
dev:27572019-04-29 12:32:04.635 pm infodata: MuteStatus1.0192.168.0.127publicoff
dev:27572019-04-29 12:32:04.634 pm infocontentType: text/html
Any help is appreciated!!!!!