0

我尝试了所有可能的方法从下面的Microsoft健康API网址获取正确的JSON响应。但是它总是在JSON响应中给我“无效的授权请求”。我也尝试过授权令牌的Base64编码,但它没有响应。我不知道我要去哪里错了?android:http中的授权标头无效获取响应

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()); 
+0

你是如何得到访问令牌的? – BNK

+0

您的令牌看起来无效(例如,它几乎不像我通过OAuth流获取的令牌那么长)。 –

+0

@BNK我从API文档中指定的身份验证流中获取了访问令牌http://developer.microsoftband.com/Content/docs/MS%20Health%20API%20Getting%20Started.pdf –

回答

0

我想你应该再次检查访问令牌以确保它是有效的。因为我在你的问题中使用新的令牌,所以应答仍然是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