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

Vee*_*eer 2 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 GMT
内容类型:为text/html; charset = utf-8
Content-Length:9
连接:keep-alive
WWW-Authenticate:Basic realm ="MG API"
OkHttp-Selected-Protocol:http/1.1
OkHttp-Sent-Millis:1434362440805
OkHttp-Received-Millis:1434362441086
Forbidden

当我在Postman上尝试同样的请求时,它完美地工作并且电子邮件被正确发送.但是当使用Android的改装库发送时,使用Forbidden失败了.

我的Retrofit API:@FormUrlEncoded @POST("/ messages")public void sendEmail(@Field("from")String from,@ Field("to")String to,@ Field("subject")String subject,@ Field ("text")String text,RestCallback objectRestCallback);

基本URL为: https:// api:key-xxx/v3/sandboxxxsandboxxxx.mailgun.org

一切都是表格URL编码.但我真的不确定出了什么问题.任何人都可以帮我解决上述API的错误吗?

谢谢Mahavir

Vee*_*eer 8

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

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

@Selvin:非常感谢发送wiki链接:).

  • 您将需要从此答案中删除apikey.您可能必须联系Stackoverflow,了解如何从答案的历史记录中删除apikey. (3认同)