📄 magent.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 + -