Как отправить файл с помощью HttpClient, когда у меня есть только inputstream
Я пытаюсь опубликовать файл с помощью HttpClient
. Однако у меня нет доступа к фактическому File
, но у меня есть доступ к его InputStream
. Есть ли способ, которым я все еще могу опубликовать файл?
Вот что я сделал до сих пор:
public void sendFile (InputStream instream) {
HttpClient client = new HttpClient();
PostMethod method = new PostMethod("http://localhost:8080/myservice/testupload");
Part[] parts = new Part[] {
//new FilePart("myFile", file.getName(), file)
};
method.setRequestEntity(
new MultipartRequestEntity(parts, method.getParams()));
client.executeMethod(method);
}
Как вы можете видеть, файл FilePart
нужен, Но у меня есть InputStream
. Как разместить входной поток в виде файла?1 ответ:
Глядя на javadoc для FilePart, есть конструктор, который принимает PartSource вместо файла, и есть подкласс PartSource под названием ByteArrayPartSource, который вы можете построить из
byte[]
; вы можете получить это изInputStream
, как описано здесь.