2013-08-22 2 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

관련 문제