Я пытаюсь разработать Http-клиент, который загружает файл с httpcomponents:
HttpPost httppost = new HttpPost(myURL);
httppost.setHeader("Content-type",
"multipart/form-data; boundary=stackoverflow");
httppost.setHeader("Accept", "text/xml");
MultipartEntity reqEntity = new multipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE,"stackoverflow",
Charset.forName("UTF-8"));
FileBody bin = new FileBody(myFile);
reqEntity.addPart("File", bin);
httppost.setEntity(reqEntity);
HttpResponse response = client.execute(httppost);
На стороне сервера есть
doPost(HttpServletRequest request, HttpServletResponse response)
метод, который анализирует запрос:
FileItemFactory factory = new DiskFileItemFactory(204800, new File(
uploadDirectory));
ServletFileUpload fileUpload = new ServletFileUpload(factory);
try {
List<FileItem> items = fileUpload.parseRequest(request);
Iterator<FileItem> itemIterator = items.iterator();
while (itemIterator.hasNext()) {
FileItem item = itemIterator.next();
....
Работает нормально, но проблема в том, что Content-type моего FileItem имеет значение null, и позже у меня возникает исключение NullPointerException. Однако когда я выполняю bin.getContentType () на стороне клиента, я получаю «text / xml».
Кто-нибудь знает, когда этот тип контента утерян и как это исправить?