Box Java SDK: как настроить HTTPUrlConnection для загрузки файлов?

Я разрабатываю приложение, использующее 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 );`

Для нового файла имя файла — это имя файла, а parentId — идентификатор целевой папки.

Box возвращает ошибку HTTP 400, значит, что-то не так с моим запросом.

Заранее спасибо за вашу помощь!


person Scott Elliott    schedule 12.08.2014    source источник


Ответы (1)


Box java sdk предоставляет методы для выполнения файловых операций, поэтому вам не нужно явно вызывать API, он использует httpclient для выполнения всех сетевых операций. Кажется, вы пытаетесь загрузить файл. Вы можете сделать: BoxFileUploadRequestObject requestObj = BoxFileUploadRequestObject.uploadFileRequestObject(parentFolderId, "filename", file); BoxFile bFile = boxClient.getFilesManager().uploadFile(requestObj);

Если вы хотите создать свой собственный http-запрос, эта конечная точка загрузки принимает составной объект со следующими частями: 1. имя: parent_id», тело строки: идентификатор родителя 2. имя: «метаданные», тело строки: json String метаданных (см. ниже) 3. файл

json Строка метаданных: {"parent":{"id":parentid},"name":filename}

person Jian Lin    schedule 12.08.2014
comment
Из-за архитектуры нашего продукта я не могу использовать uploadFile. Я должен использовать метод, описанный в моем вопросе. - person Scott Elliott; 13.08.2014