我正在开发一个使用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,因此根据我的请求,某些内容不正确。
提前感谢您的帮助!
答案 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的}, “姓名”:文件名}