没有任何特殊库的Android OAUTH
快速背景。我不是计算机科学家或程序员。只是试着把学习安卓作为一种个人挑战(帮助我与现代世界保持联系,这样我就能更好地了解我的孩子)。我一开始很简单,现在正慢慢尝试处理更具挑战性的技能 现在,我正在努力使OAUTH身份验证能够连接到YelpAPI。我读了很多博客文章。我在这里搜索并阅读了很多主题。有些是有用的,有些对我来说太高级了 我知道有一些库可以用于OAUTH。例如,我可以安装路标库并使用它。这可能是我的下一步。现在,我一直在尝试在不使用任何特殊库的情况下连接到yelpapi(记住,这对我来说是一个学习练习) YELP文档似乎足够简单 我有我的客户ID和客户机密。我尝试使用以下代码行请求访问令牌 我的尝试惨遭失败。我得到错误响应代码:400 你能帮我指出我的错误吗 非常感谢您的帮助。setRequestProperty(字符串键,字符串值)方法既不用于查询参数,也不用于表单参数。该方法用于设置要发送的HTTP头 设置客户端ID和客户端密码:没有任何特殊库的Android OAUTH,android,oauth,yelp,Android,Oauth,Yelp,快速背景。我不是计算机科学家或程序员。只是试着把学习安卓作为一种个人挑战(帮助我与现代世界保持联系,这样我就能更好地了解我的孩子)。我一开始很简单,现在正慢慢尝试处理更具挑战性的技能 现在,我正在努力使OAUTH身份验证能够连接到YelpAPI。我读了很多博客文章。我在这里搜索并阅读了很多主题。有些是有用的,有些对我来说太高级了 我知道有一些库可以用于OAUTH。例如,我可以安装路标库并使用它。这可能是我的下一步。现在,我一直在尝试在不使用任何特殊库的情况下连接到yelpapi(记住,这对我来说
String credentials=String.format(“%s:%s”、“MyClientId”、“MyClientSecret”);
byte[]credentialsBytes=凭证.getBytes(“UTF-8”);
String encoded=org.apache.commons.codec.binary.Base64.encodeBase64String(credentialsBytes);
字符串授权=String.format(“基本%s”,编码);
hURLConnection.setRequestProperty(“授权”,授权);
在请求正文中嵌入请求参数:
hURLConnection.setDoOutput(true);
byte[]bytes=“授权类型=客户端凭据”。getBytes(“UTF-8”);
OutputStream out=hURLConnection.getOutputStream();
out.write(字节);
out.flush();
如果Yelp API支持“RFC 6750”,则您的客户端ID和客户端机密可以与grant\u type
request参数一起嵌入到请求正文中
byte[]bytes=“授权类型=客户端凭据&客户端id=MyClientId&客户端密码=MyClientSecret”。getBytes(“UTF-8”);
400表示来自服务器的错误响应。。。再看看你的代码,也许它应该由Https而不是Http来处理。。。但我只是安卓devThanks的一个傻瓜。这对我很有帮助。在请求主体中发送授权类型、客户机id和客户机机密就可以做到这一点。