📄 mresponsebodyruleimpl.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -