Чтобы добавить к сказанному @Pablo, если вы уже используете клиентские библиотеки HTTP Apache Commons, вы можете использовать объект MultipartEntity
для обработки форматирования многочастного запроса:
MultipartEntity reqEntity = new MultipartEntity();
// add your ContentBody fields as normal...
// Now, pull out the contents of everything you've added and set it as the payload
ByteArrayOutputStream bos = new ByteArrayOutputStream((int)reqEntity.getContentLength());
reqEntity.writeTo(bos);
oAuthReq.addPayload(bos.toByteArray());
// Finally, set the Content-type header (with the boundary marker):
Header contentType = reqEntity.getContentType();
oAuthReq.addHeader(contentType.getName(), contentType.getValue());
// Sign and send like normal:
service.signRequest(new Token(oAuthToken, oAuthSecret), oAuthReq);
Response oauthResp = oAuthReq.send();
Конечно, у этого есть недостаток: вам нужно прочитать все тело контента в byte[]
памяти, поэтому, если вы отправляете гигантские файлы, это может быть неоптимальным. Однако для небольших загрузок это помогло мне.