0

Android アプリをサーバーと通信させるための Web サービスを作成しています。サーバーにはTomcatを使用し、転送中にJavaオブジェクトとJSONの間でデータを変換するためにJAX RS libを使用しています。私が望むのは、フレームワークが作成している実際の HTTP 要求と応答を表示できるようにすることです。

Android アプリによって生成されたリクエスト ボディもチェックする必要があるため、Web ブラウザー (Firebug を備えた Firefox など) では対応できません。

サーブレット API を使用すると、フィルターを使用して要求データをインターセプトして取得できましたが、フレームワークによって書き込まれた後の応答 (と思います) は取得できませんでした。

Wireshark は解決策になるかもしれませんが (私は現在試しています)、少し多すぎるようです。メッセージを適切にフィルタリングすることを心配する必要がありますが、HTTP メッセージを適切にフォーマットする方法をまだ理解していません (ヘキサ コンテンツのないプレーン テキスト)。

アプリケーション内または tomcat からこれを行う簡単な方法があるのだろうか。

4

2 に答える 2

0

最終的に、次のフィルターでWiresharkを使用しました。

http.content_type == "application / json" || http.accept == "application / json"

コンテンツをデコードするには、パッケージのjson部分を右クリックします( "JavaScript Object Notation:application / json")>コピー>バイト>印刷可能なテキストのみ

于 2013-03-13T11:17:17.167 に答える
0

Tomcat の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 パターンにも注意してください。これはリクエスト ヘッダー用です。

要素を,または要素<Valve/>内にネストすると、すべて設定されます。<Context/><Host/><Engine/>

于 2013-01-31T16:49:09.543 に答える