【问题标题】:android : Invalid authorisation header in http get responseandroid:http获取响应中的授权标头无效
【发布时间】:2015-08-28 14:53:26
【问题描述】:

我已经尝试了所有可能的方法来从下面的 microsoft health API url 获取正确的 JSON 响应。但它总是在 JSON 响应中给我“无效的授权请求”。我也尝试过授权令牌的 Base64 编码,但它没有响应。我不知道我哪里出错了?

String authToken="EwCgAvF0BAAUkWhN6f8bO0+g89MA1fmZueWyRkQAAfO43zeEeKVHsQJ5DiKwK62uBH2Xxh5mkV9t0EnExHELbz3u/qeS0uTqOUL4dyc3QwDikXQvNwFXWyK7sj6ChM3NrIF9L+7mI0ecmBme8IcghJ+kU+4SxHWZkOrshA8g5XW+KliOJbKvu4bus+JiMYxwKnqkLW6hkVxGQ1EHf0HzkHTNnWMbr1T4vNWJos7ITalOorV455MGekOvhEaFETrma9lQfos0RPRbDhdaKJiNFxUYQCvVywlbxRm96AOHlm/Be7GKYgF+vyktNs4dPgPz2l9MlzSGSE0IXtamSCiCaUocLDQ9yMY+jxKA4VPqhvbr1z3rc7fMk/wJvYebxVsDZgAACEzG05vV/JrAcAGHT5EeXaixNgTOW+S7CMcp3qpJtcl6MKveXA1e3fgvSQPCHnsy9nDoWYMgk4Uv6UkMbirkyzlG2JMFVpLg9PJE6sHIO0BZlkMb/DWMudrEsR3dwz00H/zAru9u6jMHnrbb44C/1z5lyXgwB3jItd/SWmRUdCBu3rF8IBXglAeyHxH+Mj5Zt2l+2rqly0p2sSqoUwgi49kThIggSlmod932fLWATHx5Lx3BN/wGfWU9XQplphPwYQvBsRnwv+gcZi9eK07aDIcdGhcp9J1fwCkjnBTZw+f0mDOyEfUSCyD0pnRXwz5CYDVN94TfFgZdnFAwi5wslKNUOYh6QBAJzaSXS/nj376FsORdEA1mUgowb/I2npitlr7+NTN6S+qWMdpEuiOVDVydi3L0H+xXKOaagzrels7bN7RpK0C+/kUqLfFrg8SeXxinqd+qhADu+56pRJnh8Sn3qdx/FmTQ/iGSYnrMMlT6SRDUjNVFoS3F540B";
HttpClient client = new DefaultHttpClient();
                        HttpGet request = new HttpGet();
                        request.setURI(new URI("https://api.microsofthealth.net/v1/me/Summaries/Daily?startTime=" + startTime + "&endTime=" + endTime));
                        String authString = "Bearer " + authToken;
                        request.addHeader("Authorization", authString);

                        response = client.execute(request);

                        String json_string = EntityUtils.toString(response.getEntity());

【问题讨论】:

  • 您是如何获得访问令牌的?
  • 您的令牌看起来无效(例如,它不像我通过 OAuth 流程获得的令牌那么长)。
  • @BNK 我从 API 文档developer.microsoftband.com/Content/docs/…中指定的身份验证流程中获得了访问令牌
  • 获取token时要求的范围是什么?
  • 感谢所有 cmets 由于日期时间格式错误,它无法正常工作。它现在工作正常。我正在使用这三个范围(offline_access mshealth.ReadDevices mshealth.ReadActivityHistory),但我也无法获取范围offline_access 的刷新令牌。我应该更改我的 microsoft 帐户中的任何设置吗?

标签: android http-headers authorization httpresponse microsoft-band


【解决方案1】:

我认为您应该再次检查访问令牌以确保其有效。因为我在您的问题中使用了新令牌,所以仍然回复 401。

GET https://api.microsofthealth.net/v1/me/Profile/
Authorization: bearer EwCgAvF0BAAUkWhN6f8bO0+g89MA1fmZueWyRkQAAfO43zeEeKVHsQJ5DiKwK62uBH2Xxh5mkV9t0EnExHELbz3u/qeS0uTqOUL4dyc3QwDikXQvNwFXWyK7sj6ChM3NrIF9L+7mI0ecmBme8IcghJ+kU+4SxHWZkOrshA8g5XW+KliOJbKvu4bus+JiMYxwKnqkLW6hkVxGQ1EHf0HzkHTNnWMbr1T4vNWJos7ITalOorV455MGekOvhEaFETrma9lQfos0RPRbDhdaKJiNFxUYQCvVywlbxRm96AOHlm/Be7GKYgF+vyktNs4dPgPz2l9MlzSGSE0IXtamSCiCaUocLDQ9yMY+jxKA4VPqhvbr1z3rc7fMk/wJvYebxVsDZgAACEzG05vV/JrAcAGHT5EeXaixNgTOW+S7CMcp3qpJtcl6MKveXA1e3fgvSQPCHnsy9nDoWYMgk4Uv6UkMbirkyzlG2JMFVpLg9PJE6sHIO0BZlkMb/DWMudrEsR3dwz00H/zAru9u6jMHnrbb44C/1z5lyXgwB3jItd/SWmRUdCBu3rF8IBXglAeyHxH+Mj5Zt2l+2rqly0p2sSqoUwgi49kThIggSlmod932fLWATHx5Lx3BN/wGfWU9XQplphPwYQvBsRnwv+gcZi9eK07aDIcdGhcp9J1fwCkjnBTZw+f0mDOyEfUSCyD0pnRXwz5CYDVN94TfFgZdnFAwi5wslKNUOYh6QBAJzaSXS/nj376FsORdEA1mUgowb/I2npitlr7+NTN6S+qWMdpEuiOVDVydi3L0H+xXKOaagzrels7bN7RpK0C+/kUqLfFrg8SeXxinqd+qhADu+56pRJnh8Sn3qdx/FmTQ/iGSYnrMMlT6SRDUjNVFoS3F540B

 -- response --
401 Unauthorized
Cache-Control:  no-cache
Pragma:  no-cache
Expires:  -1
Server:  Microsoft-IIS/8.5
WWW-Authenticate:  Bearer realm="mshealth" error="invalid_token"
X-AspNet-Version:  4.0.30319
AppEx-Activity-Id:  7c22cdab-5307-4b62-b81b-42e1315d9b1b
x-powered-by:  ASP.NET
Date:  Mon, 31 Aug 2015 07:04:00 GMT
Content-Length:  0

【讨论】:

    猜你喜欢
    • 2017-10-17
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2016-09-14
    • 2017-07-07
    相关资源
    最近更新 更多