proxyrequestobserver.java
来自「很棒的web服务器源代码」· Java 代码 · 共 78 行
JAVA
78 行
// ProxyRequestObserver.java// $Id: ProxyRequestObserver.java,v 1.16 2003/02/25 16:48:00 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1996.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.jigsaw.proxy ;import java.io.IOException;import java.io.InputStream;import org.w3c.jigsaw.http.Reply;import org.w3c.www.protocol.http.ContinueEvent;import org.w3c.www.protocol.http.Request;import org.w3c.www.protocol.http.RequestEvent;import org.w3c.www.protocol.http.RequestObserver;public class ProxyRequestObserver implements RequestObserver { /** * Our client, ie the one that sends us a request to fulfill. */ org.w3c.jigsaw.http.Request request = null; // our calling frame, for dupRequest/Reply (FIXME, should be a static // somewhere ForwardFrame frame = null; /** * Call back, invoked by the HttpManager callback thread. * Each time a request status changes (due to progress in its processing) * this callback gets called, with the new status as an argument. * @param preq The pending request that has made some progress. * @param event The event to broadcast. */ public void notifyProgress(RequestEvent event) { Request req = event.request; if ( event instanceof ContinueEvent ) { // We need to forward this straight to the client: // FIXME 1/ why not using req? // should be check100Continue() or something ContinueEvent cevent = (ContinueEvent) event; if ((req.getMajorVersion() == 1) && (req.getMinorVersion() == 1)) { try { if ((cevent.packet != null) && (frame != null)) { Reply r = null; try { r = frame.dupReply(request, cevent.packet); r.setStream((InputStream)null); } catch (Exception ex) {} request.getClient().sendContinue(r); } else { request.getClient().sendContinue(); } } catch (IOException ex) { } }// String exp = request.getExpect();// if (exp != null && (exp.equalsIgnoreCase("100-continue"))) {// try {// request.getClient().sendContinue();// } catch (IOException ex) {// // This will fail latter on too, forget about it (!)// }// } } } public ProxyRequestObserver(org.w3c.jigsaw.http.Request request) { this.request = request; } public ProxyRequestObserver(org.w3c.jigsaw.http.Request request, ForwardFrame frame) { this.request = request; this.frame = frame; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?