Как отправить файл с помощью 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 4

1 ответ:

Глядя на javadoc для FilePart, есть конструктор, который принимает PartSource вместо файла, и есть подкласс PartSource под названием ByteArrayPartSource, который вы можете построить из byte[]; вы можете получить это из InputStream, как описано здесь.