使用授权标头在java中使用来自box.com的access_token向API V2发送请求

时间:2013-07-08 11:01:38

标签: java box-api

我正在尝试使用JAVA开发一个Web应用程序,以便从box.com中检索文件和文件夹。

为此我使用的是OAuth Process。在这个过程中,我采用了“access_token”。 通过使用这个“aceess_token”,我需要向API V2发出请求。

为此,box-api用户提供了一个URL:

https://www.box.com/api/2.0/folders/0 -H "Authorization: Bearer {acceess_token}"

所以,我的问题是:

  • 什么是“授权:持票人”?
  • 如何将此字符串附加到网址?
  • 如何传递“access_token”?

4 个答案:

答案 0 :(得分:1)

那里有很多(一般)问题。 Oauth不是一个简单的主题。我发现这个http://tutorials.jenkov.com/oauth2/index.html以一种非常好的,简洁的方式来解释它。

答案 1 :(得分:1)

URL url = new URI("https", "www.box.com", "/api/oauth2/token",null).toURL();
urlConn.setRequestProperty("Authorization", "Bearer " + accessToken);
if (urlConn.getResponseCode() == 200)
{
     //get stringBuffer filled
}

答案 2 :(得分:0)

您可以尝试使用java sdk框:https://github.com/box/box-java-sdk-v2 它支持OAuth流,但现在缺少OAuth UI。还有一个hello world示例显示如何为OAuth流实现UI:https://github.com/box/box-java-sdk-v2/wiki/HelloWorld

答案 3 :(得分:0)

萨拉, “授权:承载”这里不是URL参数。您不希望将其附加到URL。它实际上是HTTP标头和值的键值对。

也就是说,您需要将“授权”标头设置为值“Bearer”

所以在这里,您的请求可能如下:

URL url = new URL("https://api.box.com/2.0/folders/0");
UrlConnection conn = url.openConnection();
conn.setRequestProperty("Authorization", "Bearer my_access_token");

像Jian说的那样,我建议您使用Box Java SDK,以便更轻松地处理网络方面。