⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 magent.java

📁 httptunnel.jar httptunnel java 源码
💻 JAVA
字号:
package net.jumperz.app.MBangzone;

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

public class MAgent
implements MCommand, MSubject1
{
private URL url;
private String urlStr;
private String connectHost;
private int connectPort;
private static final int BUFSIZE = 4096;
private boolean useProxy = false;
private String proxyHost;
private int proxyPort;
private Socket socket;
private InputStream inputStream;
private OutputStream outputStream;

private MSubject1 subject = new MSubject1Impl();

private static final String userAgent = "Bangzone@JUMPERZ.NET";
//------------------------------------------------------------------------------------
public MAgent( String in_urlStr )
throws Exception
{
url	= new URL( in_urlStr );
urlStr	= in_urlStr;
}
//------------------------------------------------------------------------------------
public void execute()
{
MHttpRequest request = new MHttpRequest();

if( useProxy )
	{
	connectHost	= proxyHost;
	connectPort	= proxyPort;
	
	String host	= url.getHost();
	
	request.setMethod( "HEAD" );
	request.setUri( urlStr );
	request.setHeaderValue( "Host" , host );
	request.setHeaderValue( "Pragma" , "no-cache" );
	request.setHeaderValue( "User-Agent", userAgent );
	}
else
	{
	connectHost	= url.getHost();
	connectPort	= url.getPort();
	if( connectPort == -1 )
		{
		connectPort = 80;
		}

	String path	= url.getPath();
	String query	= url.getQuery();
	String host	= url.getHost();

	if( query == null )
		{
		query = "";
		}
	else
		{
		query = "?" + query;
		}

	request.setMethod( "HEAD" );
	request.setUri( path + query );
	request.setHeaderValue( "Host" , host );
	request.setHeaderValue( "Pragma" , "no-cache" );
	request.setHeaderValue( "User-Agent", userAgent );
	}
try
	{
	//System.out.write( request.getHeader() ); 
	
	socket = new Socket( connectHost, connectPort );
	outputStream = socket.getOutputStream();
	outputStream.write( request.getHeader() );
	
	inputStream	= socket.getInputStream();
	MHttpResponse response	= new MHttpResponse( new BufferedInputStream( inputStream ) );
	
	int statusCode = response.getStatusCode();
	if( statusCode != 200 )
		{
		System.out.println( String.valueOf( statusCode ) + " " + urlStr );
		}
	}
catch( Exception e )
	{
	e.printStackTrace();
	MStandardLogger.getInstance().log( urlStr + e.toString() );
	}
}
//------------------------------------------------------------------------------------
public void breakCommand()
{
try
	{
	if( outputStream != null )
		{
		outputStream.close();
		}
	if( inputStream != null )
		{
		inputStream.close();
		}
	if( socket != null )
		{
		socket.close();
		}
	}
catch( IOException e )
	{
	e.printStackTrace();
	}
}
//------------------------------------------------------------------------------------
public void setProxy( String in_proxyHost, int in_proxyPort )
{
useProxy = true;
proxyHost = in_proxyHost;
proxyPort = in_proxyPort;
}
//------------------------------------------------------------------------------------
public void notify1()
{
subject.notify1();
}
//----------------------------------------------------------------
public void register1( MObserver1 observer )
{
subject.register1( observer );
}
//----------------------------------------------------------------
public void removeObservers1()
{
subject.removeObservers1();
}
//----------------------------------------------------------------
public void removeObserver1( MObserver1 observer )
{
subject.removeObserver1( observer );
}
//----------------------------------------------------------------
}

⌨️ 快捷键说明

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