Я пытаюсь отправить файл в Servlet. Наряду с этим файлом я также должен отправить некоторые параметры (например, имя/идентификатор, дату и несколько других). Я использую HttpClient на стороне клиента и ServerFileUpload на стороне сервера.Добавить параметры в Apache HttpPost
Это код на стороне клиента: ...
String url = "http://localhost:8080/RicezioneServlet/RicezioneServlet";
HttpClient httpclient = new DefaultHttpClient();
HttpPost postMethod = new HttpPost(url);
MultipartEntity mpe = new MultipartEntity();
//I'm sending a .zip file
ContentBody cb = new FileBody(fileToSend,"application/zip");
mpe.addPart("file", cb);
postMethod.setEntity(mpe);
HttpResponse resp = httpclient.execute(postMethod);
HttpEntity respEntity = resp.getEntity();
System.out.println(resp.getStatusLine());
...
на стороне сервера, у нас есть:
ServletFileUpload sup = new ServletFileUpload();
FileItemIterator it = sup.getItemIterator(request);
FileItemStream item = it.next();
InputStream ios = item.openStream();
//read from ios and write to a fileoutputstream.
Теперь я не знаю, как добавить вышеупомянутые параметры в запрос ... Я попытался использовать StringBody и добавить его в MultiPartEntity, но получаю исключение NullPointerException по адресу:
String author = request.getParameter("author");
что означает, что параметр не рассматривается как параметр, может быть?
Единственное, что я получил, это настройка этих параметров в качестве заголовков (setHeader и getHeader), но это не вариант.
Любые советы? Или, может быть, вы можете перенаправить меня на полный пример загрузки файла + параметров?
Спасибо,
Alex
да, но это 3.x. Он хочет 4.0 – Bozho
Да, я использую 4.0.1! – Alex
@Alex Я обновил свой ответ – YoK