Я работаю над простой связью на клиентском сервере с использованием HttpPost. С клиентской стороны я устанавливаю параметр (имя файла).Servlet request.getParameter() всегда возвращает значение null
На стороне сервера, когда я пытаюсь получить значение параметра, он всегда показывает null. Я пробовал использовать MultiPartEntity, но даже это не работает.
Ниже мой код клиента:
HttpPost httppost = new HttpPost("http://xxx.xxx.xxx.xxx:yyyy");
InputStreamEntity reqEntity = new InputStreamEntity(
new FileInputStream(dataFile), -1);
reqEntity.setContentType("binary/octet-stream");
// Send in multiple parts if needed
reqEntity.setChunked(true);
httppost.setEntity(reqEntity);
//setting the parameter
httppost.getParams().setParameter("filename", "xxxx.xml");
HttpResponse response = httpclient.execute(httppost);
int respcode = response.getStatusLine().getStatusCode();
И это мой сервлет код:
response.setContentType("binary/octet-stream");
Scanner scanner = new Scanner(request.getInputStream());
// reading the parameter
String filename = request.getParameter("filename");
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("C:\\" + filename)));
Пожалуйста, дайте мне знать, любое возможное решение этой проблемы.
Заранее благодарен!
Спасибо за ваш ответ. Я уже устанавливаю reqEntity, httppost.setEntity (reqEntity); Если я последую вашей логике, я не получаю исходные данные в файле. Можно ли установить несколько объектов? –
U может достичь этого, это два запроса. Сначала установите и выполните имя файла, как указано выше в ответе. Получите его в сервлете перед чтением входного потока, а во втором запросе отправьте поток ur – Jazib