2013-03-21 2 views
1

나는 나의 클라이언트에서 다음 코드를 사용했습니다 :서버 측 콘텐츠에 액세스하는 방법은 무엇입니까?

HttpPost post = new HttpPost(url); 
post.setEntity(new ByteArrayEntity(myString.getBytes("UTF8"))); 
HttpResponse response = this.execute(post); 

지금은 서버 측에 문자열을 액세스하고 싶습니다. 다음과 같이 핸들 방법은 같습니다

public void handle(String target, Request baseRequest, HttpServletRequest request, 
HttpServletResponse response) throws IOException, ServletException { ... } 

요청은 나만 콘텐츠 길이와 형태가 아니라 콘텐츠 자체에 액세스 할 수 있습니다. 어떤 포인터?

저는 pl로 java를 사용하고 javax.servlet에서 빌드 된 클래스를 사용하고 있습니다.

+0

프로그래밍 언어/프레임 워크뿐 아니라 사용중인 웹 서버 종류를 알려주는 것이 좋습니다. –

답변

0

어떤 이유로 든 요청 매개 변수 대신 문자열을 유일한 HTTP 요청 본문으로 설정했습니다. 따라서 그것을 얻으려면 전체 HTTP 요청 본문을 읽어야합니다. 이미 예를 들어, 사전에 읽은 때이이 빈 스트림을 반환한다는

InputStream input = request.getInputStream(); 
// Read it into a String the usual way (using UTF-8). 

참고하여 사용할 수 서블릿에 암시 적으로 POST 요청 본문을 구문 분석하는 매우 동일한 요청에 대해 getParameter()을 미리 호출해야합니다.

더 제정신 접근 방식은 (정확히 기본적으로 이러한 HTML 양식이처럼 같은) 다음과 같이

List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("myString", myString)); 
post.setEntity(new UrlEncodedFormEntity(params)); 

그래서 당신은 서블릿 단지

을 할 수있는 정상적인 URL 인코딩 된 요청 매개 변수로 전송하는 것
String myString = request.getParameter("myString"); 
// ... 
+0

고마워, 내 문제를 해결. – user2196234

관련 문제