Я пытаюсь отправить запрос POST в Restful WS с запросом, первоначально являющимся xml, и поэтому является ответом.Groovy httpBuilder POST XML с базовой аутентификацией
Мне также нужна базовая аутентификация. Сначала у меня возникали проблемы с не определенными классами, и, к счастью, для решения этого потребовалось 6 банок.
Теперь я получаю следующее: Caught: groovyx.net.http.HttpResponseException: Bad Request
Похоже, это не нравится запрос POST. Я пробовал разные способы, включая RESTClient, я попытался делегировать запрос в его необработанном XML-формате, передав файл или как строку var. Я не совсем понимаю разницу между методами post или request в httpBuilder.
Если кто-нибудь может помочь мне точку в том, что я сделал неправильно было бы очень благодарен
def http = new HTTPBuilder('http://some_IP:some_Port/')
http.auth.basic('userName','password')
http.post(path:'/path/ToServlet')
http.post(POST,XML)
{
delegate.contentType="text/xml"
delegate.headers['Content-Type']="text/xml"
//delegate.post(getClass().getResource("/query.xml"))
// body = getClass().getResource("/query.xml")
body =
{
mkp.xmlDeclaration()
Request{
Header{
Command('Retrieve')
EntityIdentifiers
{
Identifier(Value:'PhoneNumber', Type:'TelephoneNumber')
}
EntityName('Subscriber')
}
}
}
}
Теперь в случае, если я перевел XML неправильно в моем запросе здесь является версия XML из него:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Provisioning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Request> <Header> <Command>Retrieve</Command> <EntityIdentifiers> <Identifier Value="phoneNumber" Type="TelephoneNumber" /> </EntityIdentifiers> <EntityName>Subscriber</EntityName> </Header> </Request> </Provisioning>
Спасибо @MichaelRutherford Это, кажется, немного лучше, теперь я могу реально увидеть хорошо отформатированный запрос xml однако HTTPBuilder жалуется на совместимые типы аргументов Теперь я получаю следующее при запуске groovy script в командной строке: java.io.StringWriter нельзя отнести к java.util.Map – user3849802
и в Eclipse Я получаю эту ошибку сказал, что это groovyx.net с ошибкой Eclipse: Нет подписи метода: groovyx.net.http.HTTPBuilder.post() применимо для типов аргументов: (java.util.LinkedHashMap, SMSC $ _run_closure2) значения: {["contentType": application/xml, "query": @Michael Rutherfurd –
user3849802
groovy.xml.MarkupBuilder не может быть отброшен в java.util.Map, получая ошибки при запуске. Map или LinkedHashMap из xml.MarkupBuilder любая идея, как отличить правильный тип !!? – user3849802