我正在使用
gradle-play-publisher库将我的应用程序上传到Google Play,但执行发布任务时我收到错误401未经授权.
我的开发人员帐户在Google Play和服务帐户在Dev Console设置.播放API已启用.
我的开发人员帐户在Google Play和服务帐户在Dev Console设置.播放API已启用.
正如我从构建日志中看到的,发送的第一个请求是:
POST https://accounts.google.com/o/oauth2/token
我得到200 OK和以下json:
{ "access_token" : "< some value here>","token_type" : "Bearer","expires_in" : 3600 }
然后发送下一个请求:
POST https://www.googleapis.com/androidpublisher/v2/applications/< my app's package name here>/edits
首先,我注意到这个标题:
Authorization: <Not Logged>
第二,我收到这个错误作为一个回应
401 Unauthorized WWW-Authenticate: Bearer realm="https://accounts.google.com/",error=invalid_token
有没有人面临同样的问题?一切似乎设置正确,所以我不知道出了什么问题.谢谢.
解决方法
你的错误意味着
服务器以401(未经授权)状态代码进行响应,但未能提供单一认证挑战(WWW-Authenticate标头),从而使HttpClient无法从认证失败中自动恢复.
Check your HTTP POST request in you application which might expect
some short of credentials in the HTML form
我希望您已经通过使用POSTMAN Google Chrome扩展来测试您的休息API(url).
现在,如果您的休息api工作正常,那么考虑在您的代码中使用它,一步一步尝试找出以下内容
- server implementation is wrong or client side implementation wrong or url
- parameters are wrong
- check for
<uses-permission android:name="android.permission.INTERNET" />
in your AndroidManifest.xml