2013-08-22 4 views
0

Я работаю над простой связью на клиентском сервере с использованием 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))); 

Пожалуйста, дайте мне знать, любое возможное решение этой проблемы.

Заранее благодарен!

ответ

-1

Ур параметры настройки неправильно ... на стороне клиента, выполните следующие действия:

ArrayList<NameValuePair> postParameters = postParameters = new ArrayList<NameValuePair>(); 
postParameters.add(new BasicNameValuePair("filename", "xxxx.xml"); 
httppost.setEntity(new UrlEncodedFormEntity(postParameters)); 
HttpResponse response = httpclient.execute(httppost); 
+0

Спасибо за ваш ответ. Я уже устанавливаю reqEntity, httppost.setEntity (reqEntity); Если я последую вашей логике, я не получаю исходные данные в файле. Можно ли установить несколько объектов? –

+0

U может достичь этого, это два запроса. Сначала установите и выполните имя файла, как указано выше в ответе. Получите его в сервлете перед чтением входного потока, а во втором запросе отправьте поток ur – Jazib

Смежные вопросы