Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
DefaultModule.java
Package: HTTP客户端.zip [view]
Upload User: demmber
Upload Date: 2007-12-22
Package Size: 717k
Code Size: 4k
Category:
Java Develop
Development Platform:
Java
- /*
- * @(#)DefaultModule.java 0.3-3 06/05/2001
- *
- * This file is part of the HTTPClient package
- * Copyright (C) 1996-2001 Ronald Tschal鋜
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307, USA
- *
- * For questions, suggestions, bug-reports, enhancement-requests etc.
- * I may be contacted at:
- *
- * ronald@innovation.ch
- *
- * The HTTPClient's home page is located at:
- *
- * http://www.innovation.ch/java/HTTPClient/
- *
- */
- package HTTPClient;
- import java.io.IOException;
- import java.net.ProtocolException;
- /**
- * This is the default module which gets called after all other modules
- * have done their stuff.
- *
- * @version 0.3-3 06/05/2001
- * @author Ronald Tschal鋜
- */
- class DefaultModule implements HTTPClientModule
- {
- /** number of times the request will be retried */
- private int req_timeout_retries;
- // Constructors
- /**
- * Three retries upon receipt of a 408.
- */
- DefaultModule()
- {
- req_timeout_retries = 3;
- }
- // Methods
- /**
- * Invoked by the HTTPClient.
- */
- public int requestHandler(Request req, Response[] resp)
- {
- return REQ_CONTINUE;
- }
- /**
- * Invoked by the HTTPClient.
- */
- public void responsePhase1Handler(Response resp, RoRequest req)
- {
- }
- /**
- * Invoked by the HTTPClient.
- */
- public int responsePhase2Handler(Response resp, Request req)
- throws IOException
- {
- /* handle various response status codes until satisfied */
- int sts = resp.getStatusCode();
- switch(sts)
- {
- case 408: // Request Timeout
- if (req_timeout_retries-- == 0 || req.getStream() != null)
- {
- Log.write(Log.MODS, "DefM: Status " + sts + " " +
- resp.getReasonLine() + " not handled - " +
- "maximum number of retries exceeded");
- return RSP_CONTINUE;
- }
- else
- {
- Log.write(Log.MODS, "DefM: Handling " + sts + " " +
- resp.getReasonLine() + " - " +
- "resending request");
- return RSP_REQUEST;
- }
- case 411: // Length Required
- if (req.getStream() != null &&
- req.getStream().getLength() == -1)
- return RSP_CONTINUE;
- try { resp.getInputStream().close(); }
- catch (IOException ioe) { }
- if (req.getData() != null)
- throw new ProtocolException("Received status code 411 even"+
- " though Content-Length was sent");
- Log.write(Log.MODS, "DefM: Handling " + sts + " " +
- resp.getReasonLine() + " - resending " +
- "request with 'Content-length: 0'");
- req.setData(new byte[0]); // will send Content-Length: 0
- return RSP_REQUEST;
- case 505: // HTTP Version not supported
- return RSP_CONTINUE;
- default:
- return RSP_CONTINUE;
- }
- }
- /**
- * Invoked by the HTTPClient.
- */
- public void responsePhase3Handler(Response resp, RoRequest req)
- {
- }
- /**
- * Invoked by the HTTPClient.
- */
- public void trailerHandler(Response resp, RoRequest req)
- {
- }
- }