0

我正在开发一个利用 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,所以我的请求有问题。

在此先感谢您的帮助!

4

1 回答 1

1

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

如果您确实想创建自己的 http 请求,则此上传端点采用具有以下部分的多部分实体:1.名称:parent_id”,字符串正文:父 ID 2.名称:“元数据”,字符串正文:json String肉类数据(见下文) 3. 文件

json 元数据字符串:{"parent":{"id":parentid},"name":filename}

于 2014-08-12T20:27:42.820 回答