无法使用Azure Media Services获取访问令牌

时间:2016-12-09 15:05:33

标签: java android azure-media-services

我正在使用Azure媒体服务在Android上开发流媒体应用程序。我按照他们页面上的说明进行操作(不能发布超过2个链接)。这就是我得到的回应:

D/OkHttp: --> POST https://wamsprodglobal001acs.accesscontrol.windows.net/v2/OAuth2-13 http/1.1
D/OkHttp: Content-Type: application/x-www-form-urlencoded
D/OkHttp: Content-Length: 159
D/OkHttp: Host: wamsprodglobal001acs.accesscontrol.windows.net
D/OkHttp: Expect: 100-continue
D/OkHttp: Connection: Keep-Alive
D/OkHttp: Accept: application/json
D/OkHttp: "grant_type=client_credentials&client_id=<AccountName>&client_secret=<UrlEncodedPrimaryKey>&scope=urn%3aWindowsAzureMediaServices"
D/OkHttp: --> END POST (159-byte body)
I/art: Background sticky concurrent mark sweep GC freed 29299(2MB) AllocSpace objects, 14(268KB) LOS objects, 40% free, 5MB/9MB, paused 14.302ms total 58.113ms
D/OkHttp: <-- 400 Bad Request https://wamsprodglobal001acs.accesscontrol.windows.net/v2/OAuth2-13 (1028ms)
D/OkHttp: Cache-Control: private
D/OkHttp: Content-Type: application/json; charset=utf-8
D/OkHttp: x-ms-request-id: f6541a67-21c5-465b-9b36-96ef257980f1
D/OkHttp: request-id: f6541a67-21c5-465b-9b36-96ef257980f1
D/OkHttp: X-Content-Type-Options: nosniff
D/OkHttp: Strict-Transport-Security: max-age=31536000; includeSubDomains
D/OkHttp: Date: Fri, 09 Dec 2016 14:43:55 GMT
D/OkHttp: Content-Length: 254
D/OkHttp: {"error":"invalid_request","error_description":"ACS90011: The required field \u0027grant_type\u0027 is missing.\r\nTrace ID: f6541a67-21c5-465b-9b36-96ef257980f1\r\nCorrelation ID: e575a3ec-539e-4e72-82a1-ed9dc4c1a4b3\r\nTimestamp: 2016-12-09 14:43:55Z"}
D/OkHttp: <-- END HTTP (254-byte body)

还尝试使用Postman发送相同的请求并成功收到令牌。

1 个答案:

答案 0 :(得分:2)

如果有人遇到同样的问题,我在Android应用上使用了Retrofit。问题是因为请求的@Body是String类型所以需要正确格式化。 以下是有关如何执行此操作的链接:https://futurestud.io/tutorials/retrofit-2-how-to-send-plain-text-request-body