【发布时间】:2015-08-30 19:28:17
【问题描述】:
我正在尝试使用改造库在 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 (1966ms)
服务器:nginx/1.7.9
日期:2015 年 6 月 15 日星期一 10:00:37 GMT
内容类型:文本/html;字符集=utf-8
内容长度:9
连接:保持活动
WWW-Authenticate: Basic realm="MG API"
OkHttp 选定协议:http/1.1
OkHttp-Sent-Millis:1434362440805
OkHttp-Received-Millis:1434362441086
禁止
当我在 Postman 上尝试同样的请求时,它运行良好并且电子邮件发送正确。但是,当使用来自 Android 的改造库发送时因禁止而失败。
我的改造 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有什么问题?
谢谢你, 马哈维亚
【问题讨论】:
-
en.wikipedia.org/wiki/Basic_access_authentication ... 当我在 Postman 上尝试同样的请求时,它可以完美运行
-
Umm .. 在 Postman 中,我在 URL 本身“username:password@url”中发送身份验证参数并且它正在工作.. 但是在使用 Retrofit 库调用 java 时同样的事情不起作用。
-
在尝试使用 Mailgun 和 Paw 时遇到同样的问题 - 接受的答案解决了它。