Я немного подождал и не нашел ответов на свой вопрос.Я нашел решение сам.Хотя я не считаю его наиболее эффективным, он устраняет препятствия и позволяет мне продолжить.Вот решение:
На стороне отправителя (сервер или клиент): используйте org.apache.commons.codec.binary.Base64 для encodeToString (byte [] fileRepresentedAsBytes) и отправьте HTTP Content-Type = text /равнина.
На стороне получателя (сервер или клиент): используйте метод org.apache.commons.codec.binary.Base64.decode, чтобы вернуть байты [] и создать из него свой файл.
Вот код для сервлета http:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
File file = new File(<your-file-here>);
Base64 b = new Base64();
String fileStr = b.encodeToString(IOUtils.toByteArray(new FileInputStream(file)));
String queryString = "file=" + fileStr + "&foo=bar";
resp.setHeader("Content-Type", "text/plain");
resp.getWriter().print(queryString);
resp.getWriter().flush();
resp.getWriter().close();
}
На стороне клиента просто используйте анализатор строки запроса из apache http utils и используйте Base64.decode.Это позволит вам передавать файл и другие текстовые параметры между клиентом и сервером.Помните, что клиент в моем случае это объект POJO, а не браузер.Вот почему я говорю, что не имеет значения, хотите ли вы отправить файл с клиента на сервер или с сервера на клиент.
Я буду счастлив изучить альтернативные, более эффективные методы, если кто-то сможет опубликовать их здесь.