Mailgun POST / messages API总是抛出401禁止

时间:2015-06-15 10:26:49

标签: android mailgun

我正在尝试使用改造库在Android中发送Mailgun POST /消息API请求。

以下是改装请求:

HTTP POST https://api:key-xxx/v3/sandboxxxx/messages

缓存控制:无缓存
内容类型:application / x-www-form-urlencoded
内容长度:148

这=激发+使用者+%3Cmailgun%40sandboxxxxmailgun.org%3E&安培;要= vir.jain%40gmail.com&安培受试者=你好&安培;文本=测试+迷死

响应: HTTP 401 https://api:key-xxx/v3/sandboxxxx.mailgun.org/messages(1966ms)
服务器:nginx / 1.7.9
日期:2015年6月15日星期一格林威治标准时间10:00:37 内容类型:text / html;字符集= UTF-8
内容长度:9
连接:保持活力
WWW-Authenticate:Basic realm =“MG API”
OkHttp-Selected-Protocol:http / 1.1
OkHttp-Sent-Millis:1434362440805
OkHttp-Received-Millis:1434362441086

当我在邮差上尝试同样的要求时,它完美地运作了电子邮件已正确发送。但是当使用Android的改装库发送失败时,使用Forbidden。

My Retrofit API: @FormUrlEncoded @POST( “/消息”) public void sendEmail(@Field(“from”)String from,@ Field(“to”)String to,@ Field(“subject”)String subject,@ Field(“text”)String text,RestCallback objectRestCallback);

基本网址是: https://api:key-xxx/v3/sandboxxxsandboxxxx.mailgun.org

所有内容都是表单URL编码。但我真的不确定出了什么问题。 任何人都可以帮我解决上述API的错误吗?

谢谢你, 马哈维亚

2 个答案:

答案 0 :(得分:8)

我将以下授权标头与Base64编码的API密钥字符串添加到请求中,它开始工作。

request.addHeader(“授权”,“基本”+ getBase64String(“api:key-xxxYOUR-API-KEY>”));

@Selvin:非常感谢发送维基链接:)。

答案 1 :(得分:0)

您需要指定您的邮件枪区域:mg.SetAPIBase(mailgun.APIBaseEU)

// Create an instance of the Mailgun Client
mg := mailgun.NewMailgun(yourDomain, privateAPIKey)
mg.SetAPIBase(mailgun.APIBaseEU)