Я пытаюсь вызвать mailgun отправить сообщение api. Следующий код работает, если я передать Params вместе с URL -post params с groovy httpbuilder в mailgun
String targetUrl = "https://api.mailgun.net/v2/my_domain_name/messages?from=fromAddress&to=toAddress&subject=sub&text=random+message"
Но когда я пытаюсь добавить этот Params в теле, то он не работает. Я получаю плохой запрос от mailgun. -
String targetUrl = "https://api.mailgun.net/v2/my_domain_name/messages
body = [from:"fromAddress", to:"toAddress", subject:"sub", text:"random message"]
Вот полный код -
def sendEmail(String mailBody, String sub, String toIds) {
String targetUrl = "https://api.mailgun.net/v2/my_domain_name/messages"
def http = new HTTPBuilder(targetUrl)
http.request(groovyx.net.http.Method.POST, groovyx.net.http.ContentType.JSON) {
body = [from:"fromAddress", to:"toAddress", subject:"sub", text:"random message"]
headers = ['Authorization':"Basic " + "api:my_api_key".bytes.encodeBase64().toString()]
response.success = { resp, reader ->
println "valid response: " + reader
}
}
}
Спасибо!
Не удается найти документы, но вы отправляете параметры запроса как тело, это неверно - используйте параметры запроса. Насколько я помню, он должен быть отправлен как карта «params», просто измените 'body' на' params'. – Opal
@Opal То, что я также думал поначалу. Я попробовал параметры вместо тела. Но, похоже, у httpbuilder нет никакого свойства с именем params. – saurabh
Попробуйте 'uri.query =