Groovy/Grails-posting-XML über HTTP (mit REST-plugin)
Ich versuche HTTP-Post eine XML-Zeichenfolge zu einer WebMethods server mit basic auth. Ich habe versucht, verwenden Sie das REST-plugin, das sitzt oben auf HTTP-generator. Ich habe versucht, ein paar Dinge, alles was eine 0 Länge Antwort. Mit Firefox-poster, das ich verwendet haben, die genau die gleiche XML-und Benutzer-auth " und die WebMethods-Antwort echo wieder die Anfrage mit zusätzlichen Informationen, so ist es etwas, was ich Tue, das in den folgenden code falsch ist. Hoffe jemand hat einen Zeiger für eine HTTP-Post XML.
string orderText = "<item>
<item>1</item>
<price>136.000000</price>
</item>"
def response = withHttp(uri: "https://someserver.net:4433") {
auth.basic 'user', 'pass'
// have tried body: XmlUtil.serialize(orderText)
def r = post(path: '/invoke/document', body: orderText, contentType: XML, requestContentType: XML)
{ resp, xml ->
log.info resp.status
log.info resp.data
resp.headers.each {
log.info "${it.name} : ${it.value}"
}
}
log.info r
return r
}
Logs sagen:
04-02-2011 14:19:39,894 DEBUG HTTPBuilder - Response code: 200; found handler: OrdersService$_closure1_closure2_closure3_closure4@36293b29
04-02-2011 14:19:39,895 INFO HTTPBuilder - Status: 200
04-02-2011 14:19:39,896 INFO HTTPBuilder - Data: null
04-02-2011 14:19:39,896 INFO HTTPBuilder - XML: null
04-02-2011 14:19:39,913 INFO HTTPBuilder - Content-Type : application/EDIINT; charset=UTF-8
04-02-2011 14:19:39,913 INFO HTTPBuilder - Content-Length : 0
Cheers,
Steve
- Konnte nicht damit es funktioniert, sogar mit Groovy HTTPBuilder so ging der unter 1. weitere Ebene, die auf Apache-HTTPClient, funktioniert Super
- Steve, sollten Sie veröffentlichen Sie Ihre Lösung als Antwort und akzeptieren es.
- Ich bin auf die genaue gleichen Sache, es wäre toll, wenn könnten Sie schreiben Ihre Lösung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, was ich am Ende mit. Es ist ziemlich standard-verwenden von common HTTP-Client
Für basic auth über SSL können Sie einfach Ihre url wie: https://user:[email protected]/etc
Grails erinnern kopieren Sie die HTTPClient jar in den lib-Ordner oder in meinem Fall installierte ich die REST-plugin, das enthält HTTPClient sowieso.
Gibt es gute docs auf die HTTPClient-Website: http://hc.apache.org/httpcomponents-client-ga/
versuchen Sie es auf diese Weise:
Denke ich, es gibt keine Notwendigkeit, es zu tun bekommen, die schwer, ich verwenden einen einfacheren Ansatz (durch die Art und Weise Sie don ' T müssen zusätzliche plugins). Also denken Sie das nächste Stück code, und natürlich bin ich ommiting die Authentifizierung Teil
Ich weiß, das könnte aus dem Zusammenhang, weil Sie Sie bitten, für den REST plugin, aber ich wollte zu teilen, da es eine andere alternative.
Bin ich mit grails 2.3.2 und Firefox RESTClient zum testen des webservice.