2016-06-28 2 views
-1

이 간단한 post 메소드가 서버 (서블릿)에 아무 것도 보내지 않았습니다. 나는 갈 수 있지만 게시 할 수는 없습니다! 서버 측에서Servlet에서 비어있는 OutputStream

@Override 
     protected String doInBackground(String... params) { 
      try { 
       URL url = new URL("http://ipaddr:8080/work/wh"); 
       HttpURLConnection client = (HttpURLConnection) url.openConnection(); 
       client.setRequestMethod("POST"); 
       client.setDoOutput(true); 
       client.setChunkedStreamingMode(0); 
       client.connect(); 

       OutputStream outputStream = client.getOutputStream(); 
       PrintWriter pw = new PrintWriter(outputStream); 
       pw.println(System.currentTimeMillis()); 
       pw.println(System.currentTimeMillis()); 
       pw.println(new Float(5.6)); 
       pw.println(new Integer(3)); 
       pw.println(new Integer(2)); 
       pw.println(new Integer(32)); 
       pw.println(new Integer(2)); 
       pw.close(); 
       outputStream.close(); 

      }catch(Exception e){ 
       Log.e("text", "ux " + e.getMessage()); 
      } 
      return null; 
     } 

내가

는 NoSuchElementException를 얻을 수있는 라인 new Scanner(request.getInputStream()).nextLine();을 읽으려고하는 경우 : 없음 라인은

당신은 문제가 무엇인지 생각을 발견?

+0

'NoSuchElementException'이'무효 '가 아닙니다. – EJP

+0

나는 무효화됩니다. 객체 inputsteam에 데이터가 없습니다. – Error

+0

코드가 MCVE 형식이 아니며 지금까지 제공된 정보에서 원인을 볼 수 없으므로 전문적인 추측을 제공 할 수 있습니다. 요청 본문이 이미 서버에 의해 (암시 적으로) 파싱 된 경우 요청 본문이 비어 있음을 알고 있습니까? 예 : 'request.getParameter()'를 호출하면 즉시 파싱됩니다. 그럼에도 불구하고 HTML 폼에서 사용하고 기본적으로 서블릿 API에서 지원하는 기본 'application/x-www-form-urlencoded'형식을 따르는 것이 어떻습니까? 또한 http://stackoverflow.com/q/2793150 – BalusC

답변

-1

PrintWritter/Outputstream을 닫기 전에 플러시를 시도하십시오.

+0

을 참조하십시오. 플러시가 무엇인지 알 수 있습니까? – Error

+0

버퍼 된 출력 바이트를 강제로 기록합니다. –

+1

close 이미 호출 flush() – Error