mbenjaminabstracthttpcommand.java

来自「httptunnel.jar httptunnel java 源码」· Java 代码 · 共 105 行

JAVA
105
字号
package net.jumperz.app.MBenjamin.command;

import java.net.*;
import java.io.*;
import net.jumperz.net.*;
import net.jumperz.util.*;
import net.jumperz.app.MBenjamin.*;

import javax.net.SocketFactory;
import javax.net.ssl.*;

public abstract class MBenjaminAbstractHttpCommand
extends MBenjaminCommand
{
private String urlStr;
private String specialString;
private URL url;
private String host;
private int port;
private MHttpRequest request;
private MHttpResponse response;
//private Socket socket;
private Exception exception;

protected int defaultPort;
protected SocketFactory socketFactory;
protected String className;
//-------------------------------------------------------------------------------
public final void setSpecialString( String in_specialString )
{
specialString = in_specialString;
}
//-------------------------------------------------------------------------------
public final void setUrl( String in_urlStr )
{
urlStr = in_urlStr;
}
//-------------------------------------------------------------------------------
protected final void executeBenjamin()
throws Exception
{
url = new URL( urlStr );
host = url.getHost();
port = url.getPort();
if( port == -1 )
	{
	port = defaultPort;
	}

request = new MHttpRequest();

String query = url.getQuery();
if( query != null )
	{
	request.setUri( url.getPath() + "?" + query );
	}
else
	{
	request.setUri( url.getPath() );
	}

request.setHeaderValue( "Host", host );
request.setHeaderValue( "Pragma", "no-cache" );
request.setHeaderValue( "Connection", "close" );
request.setHeaderValue( "User-Agent", "Benjamin@JUMPERZ.NET" );

	// connect
//socketFactory			= SSLSocketFactory.getDefault();
socket				= socketFactory.createSocket( host, port  );	
OutputStream outputStream	= socket.getOutputStream();
BufferedInputStream stream	= new BufferedInputStream( socket.getInputStream() );

	// send request
outputStream.write( request.getHeader() );

	// recv response
response = new MHttpResponse( stream );

String body = MStreamUtil.streamToString( response.getBodyInputStream() );

if( body.indexOf( specialString ) > -1 
// && response.getStatusCode() == 200
  )
	{
	System.out.println( "OK! " + this.toString() );
	notify1();
	}
}
//-------------------------------------------------------------------------------
public final String toString()
{
StringBuffer strBuf = new StringBuffer();
strBuf.append( className );
strBuf.append( url );
strBuf.append( ":" );
strBuf.append( specialString );
if( exception != null )
	{
	strBuf.append( ":" );
	strBuf.append( exception );
	}
return strBuf.toString();
}
//-------------------------------------------------------------------------------
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?