mresponsebodyruleimpl.java

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

JAVA
82
字号
package net.jumperz.app.MGuardian.rule;

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

public final class MResponseBodyRuleImpl
{
private static final int BUFSIZE	= 1024;
private static final int HEAD_BUFSIZE	= 100;
//--------------------------------------------------------------------------------
public static boolean matches( Pattern pattern, MHttpResponse response )
throws IOException
{
InputStream bodyInputStream = response.getBodyInputStream();
ByteArrayOutputStream buffer = new ByteArrayOutputStream( bodyInputStream.available() );
MStreamUtil.connectStream( bodyInputStream, buffer );
String target = buffer.toString( MCharset.CS_ISO_8859_1 );
Matcher matcher = pattern.matcher( target );
return matcher.find();
}
//--------------------------------------------------------------------------------
public static boolean lineMatches( Pattern pattern, MHttpResponse response )
throws IOException
{
BufferedReader reader = new BufferedReader( new InputStreamReader( response.getBodyInputStream(), MCharset.CS_ISO_8859_1 ) );
while( true )
	{
	String target = reader.readLine();
	if( target == null )
		{
		break;
		}
	Matcher matcher = pattern.matcher( target );
	if( matcher.find() )
		{
		return true;
		}	
	}
return false;
}
//--------------------------------------------------------------------------------
public static boolean bufferMatches( Pattern pattern, MHttpResponse response )
throws IOException
{
byte[] buffer = new byte[ BUFSIZE ];
InputStream bodyInputStream = response.getBodyInputStream();
while( true )
	{
	int r = bodyInputStream.read( buffer );
	if( r == -1 )
		{
		break;
		}
	String target = new String( buffer, 0, r, MCharset.CS_ISO_8859_1 );
	Matcher matcher = pattern.matcher( target );
	if( matcher.find() )
		{
		return true;
		}
	}
return false;
}
//--------------------------------------------------------------------------------
public static boolean headMatches( Pattern pattern, MHttpResponse response )
throws IOException
{
byte[] buffer = new byte[ HEAD_BUFSIZE ];
InputStream bodyInputStream = response.getBodyInputStream();
int r = bodyInputStream.read( buffer );
if( r == -1 )
	{
	return false;
	}
String target = new String( buffer, 0, r, MCharset.CS_ISO_8859_1 );
Matcher matcher = pattern.matcher( target );
return matcher.find();
}
//--------------------------------------------------------------------------------
}

⌨️ 快捷键说明

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