Mailgun POST /messages API 总是抛出 401 forbidden

Mailgun POST /messages API always throw 401 forbidden

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

改造要求如下:

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

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

from=Excited+User+%3Cmailgun%40sandboxxxxmailgun.org%3E&to=vir.jain%40gmail.com&subject=Hello&text=Testing+awesomeness

回应: HTTP 401 https://api:key-xxx/v3/sandboxxxx.mailgun.org/messages(1966 毫秒)
服务器:nginx/1.7.9
日期:2015 年 6 月 15 日星期一 10:00:37 GMT
内容类型:text/html;字符集=utf-8
内容长度:9
连接:保持活动状态
WWW-验证:基本领域="MG API"
OkHttp-选定协议:http/1.1
OkHttp-Sent-Millis:1434362440805
OkHttp-Received-Millis:1434362441086
禁止

当我在 Postman 上尝试同样的请求时,它工作正常并且电子邮件发送正确。但是当使用 Android 中的改造库发送时因 Forbidden 而失败。

我的改造API: @FormUrlEncoded @POST("/消息") public void sendEmail(@Field("from") String from, @Field("to") String to, @Field("subject") String subject, @Field("text") 字符串文本, RestCallback objectRestCallback);

基础 URL 是: https://api:key-xxx/v3/sandboxxxsandboxxxx.mailgun.org

一切都是 URL 编码的形式。但我真的不确定出了什么问题。 谁能帮我解决上面的问题 API?

谢谢, 马哈维亚

我在请求中添加了以下授权 header 和 API 密钥的 Base64 编码字符串,它开始工作了。

request.addHeader("Authorization", "Basic "+getBase64String("api:key-xxxYOUR-API-KEY>"));

@Selvin:非常感谢您发送 wiki link :)。

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

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