2012-04-26 5 views
0

http 게시글에서 게시물 매개 변수와 본문을 읽고 싶습니다.Java : HTTP POST에서 매개 변수와 본문 가져 오기

예 : URL에 게시하는 경우 : http://localhost/controller?sign=true. 게시물에는 본문에 json 데이터도 있습니다.

{"transaction": 
    {"user":[ 
     {"name": "Anna"}] 
    } 
} 

이 매개 변수는

그리고 몸이 공공 ServletInputStream의는 getInputStream()를 통해 검색 할 수는 java.io를 던졌습니다 공공 java.lang.String의 경우 getParameter (java.lang.String의 이름)을 통해 이루어집니다하기 .IOException

그러나 어떻게 매개 변수와 본문을 모두 보류합니까? getInputStream 전에 getParameter를 호출하면 결과가 inputStream에 -1이되기 때문에.

답변

1

getParameter (String name)의 커버 아래에서 ServletInputStream을 읽으면 해당 매개 변수를 가져올 수 있습니다. POST 매개 변수와 URL 매개 변수를 섞어서 사용하려는 경우 (내가 서명하려고했으나 언급 한 매개 변수가 true라고 가정) HttpServletRequest.getQueryString()을 사용하여 URL 매개 변수를 가져온 다음에는 여전히 getInputStream()을 사용하여 본문을 읽습니다. 그러나 쿼리 문자열을 파싱해야 원하는 정보를 얻을 수 있습니다.

EDIT : ServletInputStream을 읽을 때 다시 읽을 수 없다는 내 원래 답변을 추가하는 것을 잊어 버렸습니다. 스트림의 데이터를 여러 번 사용해야하는 경우 저장해야합니다. uc.setDoOutput (TRUE); 해결 내 문제

http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

+0

콘텐츠 _ = "응용 프로그램/(참) uc.setDoInput을 X-WWW-형태-urlencoded를. – JavaHacker

관련 문제