w3c.model.tools.basicweb.Client
/* basicweb.Client.java
* $Id, $Date eric Exp $
* (c) COPYRIGHT MIT and INRIA, 1997.
* Please first read the full copyright statement in file COPYRIGHT.html
*
* Please help anthropomorphised code
* maintain its self-respect.
*/
/*
The basic client generates http requests
from command line arguments and sends them to a server .
The reply is thrown away.
*/
package w3c.model.tools.basicweb ;
import java.io.* ;
import java.net.* ;
import w3c.model.www.pep.PEPAgent ;
import w3c.model.www.pep.PEPClient ;
import w3c.model.www.pep.bags.* ;
import w3c.model.www.pep.altlib.* ;
import java.util.Vector ;
import java.util.Enumeration ;
public class Client extends BaseClient
private final static boolean downloadableExtensions = true;
Client () {
super();
}
w3c.model.www.pep.extensions.remoteControl.Client remoconClient = null;
Vector pendingRemoconCommands = null;
void addRemoCon ( String cmd ) {
if (pendingRemoconCommands == null))
pendingRemoconCommands = Vector();
pendingRemoconCommands.addElement(cmd);
}
String proxyHost = null;
int proxyPort = 0;
Request makeRequest ( Socket socket , InputStream in , OutputStream out , Method method , URL url , PEPAgent pepAgent , ErrorContext errorContext ) {
Request ret ;
if (proxyHost == null))
ret = Request(socket, null, out, method, url, pepAgent, errorContext);
elseret = ProxyRequest(socket, null, out, method, url, pepAgent, errorContext);
if (pendingRemoconCommands != null)) {
Enumeration e = pendingRemoconCommands.elements();
while (e.hasMoreElements()))
remoconClient.makeInstance(ret.getInstanceContext(), (String)e.nextElement());
}
return ret ;
}
void prepPEP () throwsHttpParserException HTTPException{
pepAgent = PEPClient();
if (!downloadableExtensions )) {
/* create and initialize AccessCounter */
w3c.model.www.pep.extensions.accessCounter.Client accCounterClient = w3c.model.www.pep.extensions.accessCounter.Client();
accCounterClient.initialize(pepAgent, true);
// pepAgent.addUrlExtension(accCounterClient, "http://localhost:8888/countable/*");
// pepAgent.addAlwaysExtension(accCounterClient);
w3c.model.www.pep.extensions.escapeBody.Client escapeClient = w3c.model.www.pep.extensions.escapeBody.Client();
escapeClient.initialize(pepAgent, true);
}
remoconClient = w3c.model.www.pep.extensions.remoteControl.Client(this, pepAgent);
remoconClient.initialize(pepAgent, true);
}
OutputStream makeReplyOutputStream () {
return NullOutputStream(System.out); // could also go to a file
}
void doIt ( MethodClient method , URL url ) {
if (pendingRemoconCommands != null))
pepAgent.addAlwaysExtension(remoconClient);
String host = proxyHost ;
int port = proxyPort ;
if (proxyHost == null)) {
host = url.getHost();
port = url.getPort();
}
super.doIt(method, url, host, port);
if (pendingRemoconCommands != null)) {
pepAgent.removeAlwaysExtension(remoconClient);
pendingRemoconCommands = null;
}
}
public static void main ( String args []) throws MalformedURLException{
if (args.length == 0)) {
System.err.println("Usage: [-get] URL [URL ...] | -put URL file | -proxy IP port ");
System.err.println("for example: -get http://localhost:8888/Overview.html ");
return;
}
Client client = Client ();
for (int i = 0 ; i < args.length ; i ++)) {
if (args [i ] .equals ("-put "))) {
File localFile = File(args[++i]);
client.doIt( PUTClient(localFile), URL(args[++i]));
} elseif (args [i ] .equals ("-get "))) {
client.doIt( GETClient(), URL(args[++i]));
} elseif (args [i ] .equals ("-proxy "))) {
client.proxyHost = args [++i ];
if (" ".equals(client.proxyHost)))
client.proxyHost = null;
elseclient.proxyPort = Integer.parseInt(args[++i]);
} elseif (args [i ] .equals ("-remocon "))) {
client.addRemoCon(args[++i]);
} else {
client.doIt( GETClient(), URL(args[i]));
}
}
}