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 + -
显示快捷键?