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

📄 mrequesturi.java

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

import net.jumperz.util.*;

public class MRequestUri
{
private String path;
private String params;
private String query;
private String host;
private String user;
private String pass;
private int port = 80;
private boolean normalized = false;
private boolean relative = true;
private boolean isHttps = false;
//--------------------------------------------------------------------------------
public MRequestUri( String str )
{
if( str.indexOf( "http" ) == 0 )
	{
	if( str.indexOf( "https" ) == 0 )
		{
		isHttps = true;
		}
	relative = false;
	String str2 = MRegEx.getMatch( "http[s]{0,1}://([^/]{1,})/", str );
	if( str2.indexOf( "@" ) > 0 )
		{
		String userPass = MRegEx.getMatch( "(^[^@]{1,})@", str2 );
		if( userPass.indexOf( ":" ) > 0 )
			{
			user = MRegEx.getMatch( "(^[^:]{0,}):", userPass );
			pass = MRegEx.getMatch( ":([^:]{0,})$", userPass );
			}
		str2 = str2.substring( str2.indexOf( "@" ) + 1 );
		}
	if( str2.indexOf( ":" ) > 0 )
		{
		host = MRegEx.getMatch( "^([^:]{0,}):", str2 );
		String portStr = MRegEx.getMatch( ":(.*)$", str2 );
		try
			{
			port = Integer.parseInt( portStr );
			}
		catch( NumberFormatException e )
			{
			port = 80;
			}
		}
	else
		{
		host = str2;
		}
	
	String str3 = MRegEx.getMatch( "(http[s]{0,1}://[^/]{1,})/", str );
	str = str.substring( str3.length() );
	}
int pos = str.indexOf( '?' );
if( pos == -1 )
	{
	query = "";
	}
else
	{
	query = str.substring( pos + 1 );
	str = str.substring( 0, pos );
	}

pos = str.indexOf( ';' );
if( pos == -1 )
	{
	params = "";
	path = str;
	}
else
	{
	params = str.substring( pos + 1 );
	path = str.substring( 0, pos );
	}
}
// --------------------------------------------------------------------------------
public String getHost()
{
return host;
}
// --------------------------------------------------------------------------------
public int getPort()
{
return port;
}
// --------------------------------------------------------------------------------
public void setRelative()
{
relative = true;
}
//--------------------------------------------------------------------------------
public void normalize()
{
if( normalized )
	{
	return;
	}

path = MStringUtil.normalize( path );
normalized = true;
}
//--------------------------------------------------------------------------------
public String toString()
{
StringBuffer s = new StringBuffer( 256 );

if( !relative )
	{
	if( isHttps )
		{
		s.append( "https://" );
		}
	else
		{
		s.append( "http://" );
		}
	if( user != null && pass != null )
		{
		s.append( user );
		s.append( ":" );
		s.append( pass );
		s.append( "@" );
		}
	s.append( host );
	if( port != 80 )
		{
		s.append( ":" );
		s.append( port );
		}
	}

s.append( path );
if( !params.equals( "" ) )
	{
	s.append( ";" );
	s.append( params );
	}
if( !query.equals( "" ) )
	{
	s.append( "?" );
	s.append( query );
	}
return s.toString();
}
// --------------------------------------------------------------------------------
public boolean equals( Object o )
{
if( o.toString().equals( this.toString() ) )
	{
	return true;
	}
return false;
}
//--------------------------------------------------------------------------------
public String getParams() {
	return params;
}

public String getPath() {
	return path;
}

public String getQuery() {
	return query;
}

public void setParams(String string) {
	params = string;
}

public void setPath(String string) {
	path = string;
}

public void setQuery(String string) {
	query = string;
}

}

⌨️ 快捷键说明

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