2013-01-31 2 views
0

Android 앱이 서버와 통신하도록 웹 서비스를 만들고 있습니다. 나는 서버와 전송 중에 Java 객체와 JSON간에 데이터를 변환하기 위해 JAX RS lib에 Tomcat을 사용하고있다. 내가 원하는 것은 실제 HTTP 요청과 프레임 워크에서 생성하는 응답을 볼 수 있도록하는 것입니다.HTTP 요청 및 응답 모니터링 (웹 브라우저 없음)

Android 브라우저에서 생성 된 요청 본문을 확인해야하므로 웹 브라우저 (Firebug가있는 Firefox와 같은)는 작동하지 않습니다.

Servlet API를 사용하면 프레임 워크가 작성한 후에 응답을 가로 채지 않고 필터로 요청 데이터를 얻을 수있었습니다.

Wireshark가 해결책 일 수 있습니다 (지금 당장 시도하고 있습니다).하지만 조금은 많이하는 것 같습니다. 내 메시지를 적절히 필터링하는 것에 대해 걱정할 필요가 있고, HTTP 메시지를 올바르게 형식화하는 방법 (일반 텍스트 (헥사 콘텐츠 제외))을 얻는 방법을 아직 알지 못했습니다.

내 응용 프로그램이나 바람둥이에서이 작업을 수행하는 더 간단한 방법이 있는지 궁금합니다.

+0

[this one] (http://www.vakuumverpackt.de/tcptunnel/)과 같은 Tcp 터널은 요청 및 응답을 모니터링하기에 꽤 잘 작동합니다. –

답변

0

나는 다음과 같은 필터 와이어 샤크를 사용하여 결국 : == "응용 프로그램/JSON"

http.content_type || http.accept == "응용 프로그램/JSON"

, 바로 당신 패키지의 JSON 부분 ("자바 스크립트 객체 표기법 : 응용 프로그램/JSON")를 클릭 디코딩 된 콘텐츠를하기> 복사> 바이트> 인쇄 텍스트

0

톰캣의 AccessLogValve을 사용해보세요. 들어오는 요청 헤더와 나가는 응답 헤더를 로깅하도록 구성 할 수 있습니다. 다음은 그 예입니다.

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
      prefix="localhost_headers_access_log." suffix=".txt" 
      pattern="%t &quot;%r&quot; %s ||| %{Content-Length}o ||| %{User-Agent}i" /> 

응답 헤더 용으로 % {xxx} o 패턴을 확인하십시오. % {X-JSON} o로 사용할 수도 있습니다. 요청 헤더에 대해서도 % {xxx} i 패턴을 주목하십시오.

<Context/>, <Host/> 또는 <Engine/> 개의 요소가 포함되어 있으면 모두 설정됩니다.