我需要能够记录(至少)标题和(可选)在我的应用程序中使用 HttpsURLConnection 发送/接收的未加密消息的正文。这应该与此类似。
有没有一种简单的方法来做到这一点(例如设置一些标志来启用它)?
我需要能够记录(至少)标题和(可选)在我的应用程序中使用 HttpsURLConnection 发送/接收的未加密消息的正文。这应该与此类似。
有没有一种简单的方法来做到这一点(例如设置一些标志来启用它)?
使用此处的 Delegator 类实现了自定义 SSLSocketFactory 和 SSLSocket 的子类。Delegator 被扩展为在层次结构的超类中执行方法查找。
你可以从这里下载演示项目,看看它是如何工作的。
SSL 层实现包含自己的日志记录代码,它使用 org.apache.harmony.xnet.provider.jsse.Logger 类。它从 jsse 系统属性中读取参数名称,如果已定义,可能包含逗号分隔的值列表 conn_state、prf、alert、ssocket、record、engine 和 socket。
默认情况下,它将输出定向到 System.err。
所以我将输出重定向到 logcat
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
但是(我认为)在 Logger 类使用它之前未能初始化 jsse 系统属性。在三个选项中:使用 adb shell setprop 设置它,创建 /data/local.prop 并在 MainActivity 类的静态初始化程序中使用 System.setProperty() 设置,只有后面的选项成功(至少 getProperty() 返回设置值后)。
如果您使用第二种方法成功,请告知。