【发布时间】:2015-03-28 03:54:19
【问题描述】:
我正在尝试调用 mailgun 发送消息 api。如果我将参数与 url 一起传递,则以下代码有效 -
String targetUrl = "https://api.mailgun.net/v2/my_domain_name/messages?from=fromAddress&to=toAddress&subject=sub&text=random+message"
但是当我尝试在正文中添加这些参数时,它就不起作用了。我不断收到来自 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 我一开始也是这么想的。我尝试用 params 代替 body。但似乎 httpbuilder 没有任何名为 params 的属性。
-
试试
uri.query = <map with params>。
标签: groovy mailgun httpbuilder