Box Java SDK:如何为文件上载配置HTTPUrlConnection?

时间:2014-08-12 15:47:43

标签: java box-api boxapiv2

我正在开发一个使用Box Java SDK(Box Api v2)的应用程序。由于我们的架构,我需要通过REST api上传文件。显然,我无法正确配置HTTPUrlConnection。

这是我的代码:

URL uploadURL = new URL( "https://upload.box.com/api/2.0/files/content" );
uploadConn = (HttpURLConnection)uploadURL.openConnection();
uploadConn.setRequestMethod( "POST" );
uploadConn.setChunkedStreamingMode( 0 ); // enable chunking with default chunk size
uploadConn.setRequestProperty( "Authorization", "Bearer " + boxClient.getAuthData().getAccessToken() );
uploadConn.setRequestProperty( "filename", filename );
if (isNew) uploadConn.setRequestProperty( "parent_id", parentId );

uploadConn.setDoOutput( true );`

对于新文件,filename是文件的名称,parentId是目标文件夹的id。

Box返回HTTP错误400,因此根据我的请求,某些内容不正确。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

框java sdk提供了执行文件操作的方法,因此您不需要显式地进行api调用,它使用httpclient来执行所有网络操作。 您似乎正在尝试上传文件。 你可以做: BoxFileUploadRequestObject requestObj = BoxFileUploadRequestObject.uploadFileRequestObject(parentFolderId, "filename", file); BoxFile bFile = boxClient.getFilesManager().uploadFile(requestObj);

如果您确实要创建自己的http请求,此上传端点将使用以下部分接收多部分实体: 1. name:parent_id“,String body:parent的id 2. name:“metadata”,String body:json元数据字符串(见下文) 3.文件

json元数据字符串: { “父”:{ “ID”:parentId的}, “姓名”:文件名}