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

Я занимаюсь разработкой приложения, которое использует Box Java SDK (Box Api v2). Из-за нашей архитектуры мне нужно загружать файлы через API REST. Судя по всему, у меня возникают проблемы с правильной настройкой 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, поэтому с моим запросом что-то не так.

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

1 ответ

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

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

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

Другие вопросы по тегам