我正在Apache httpcomponents httpcore-4.4.1.jar中的HTTP服务器上构建一个小应用程序。我希望有类似于http客户端有线日志-Dorg.apache.commons.logging.simplelog.log.org.apache.http.wire
的日志。到目前为止检查代码我找不到这样的东西,所以我想我可以自己实现类似的东西。我可以覆盖org.apache.http.impl.BHttpConnectionBase.getSocketInputStream(Socket)
和getSocketOutputStream
但是我不确定如何插入"插入"我的新课程进入服务器。
其他想法也欢迎,但请不要建议使用Wireshark或Fiddler等捕获间歇性交通。
答案 0 :(得分:1)
可以在扩展org.apache.http.impl.DefaultBHttpServerConnection
的类中重写这两种方法。这个新类需要由覆盖org.apache.http.impl.DefaultBHttpServerConnectionFactory.createConnection(Socket)
的类返回,然后可以使用setConnectionFactory
方法将其设置为HTTP Server:
final HttpServer server = ServerBootstrap.bootstrap()
.setConnectionFactory(connectionFactory)
.setListenerPort(9090)
.setHttpProcessor(httpProcessor)
.setSocketConfig(socketConfig)
.setExceptionLogger(new StdErrorExceptionLogger ())
.setHandlerMapper(handle_map)
.create();
server.start();