public class HttpClientMain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Socket socket;
try {
InetAddress hostAdd=InetAddress.getByName("192.168.6.5");
socket=new Socket(hostAdd,80);
OutputStream out=socket.getOutputStream();
InputStream in=socket.getInputStream();
ByteArrayOutputStream baos=new ByteArrayOutputStream();
//baos.write("data=abc\r\n".getBytes());
//System.out.println("Data Lenth:"+baos.toByteArray().length);
byte[] bytes = ("GET / HTTP/1.1\n" +
"Host:192.168.6.5\n" +
"Connection:close\n" +
"User-agent:Mozilla/4.0\n" +
"Accept-language:zh-cn\n" +
"\n").getBytes("UTF-8");
out.write(bytes);
out.flush();
byte[] bt=new byte[1024];
InputStreamReader isr;
int len;
baos.reset();
while((len=in.read(bt))>-1){
baos.write(bt, 0, len);
}
Vector<String> v=GetStartEndValue(baos.toString(),"\\(","\\)", 0);
if (v.size()>0){
System.out.println(v.firstElement());
}
baos.close();
in.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/// <summary>
/// 获得字符串中开始和结束字符串中间得值
/// </summary>
/// <param name="str">字符串</param>
/// <param name="s">开始</param>
/// <param name="e">结束</param>
///<param name="azimuth">匹配内容是否包含开始与结束符号,0:不包含 1:包含</param>
/// <returns></returns>
public static Vector<String> GetStartEndValue(String str, String s, String e,int azimuth){
Pattern pattern;
if (azimuth==1){
pattern = Pattern.compile("(?=(" + s + "))[.\\s\\S]*?(?<=(" + e + "))");
}else{
pattern = Pattern.compile("(?<=(" + s + "))[.\\s\\S]*?(?=(" + e + "))");
}
Matcher matcher = pattern.matcher(str);
StringBuffer buffer = new StringBuffer();
Vector<String> vector=new Vector<String>();
while(matcher.find()){
vector.add(matcher.group());
}
return vector;
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Socket socket;
try {
InetAddress hostAdd=InetAddress.getByName("192.168.6.5");
socket=new Socket(hostAdd,80);
OutputStream out=socket.getOutputStream();
InputStream in=socket.getInputStream();
ByteArrayOutputStream baos=new ByteArrayOutputStream();
//baos.write("data=abc\r\n".getBytes());
//System.out.println("Data Lenth:"+baos.toByteArray().length);
byte[] bytes = ("GET / HTTP/1.1\n" +
"Host:192.168.6.5\n" +
"Connection:close\n" +
"User-agent:Mozilla/4.0\n" +
"Accept-language:zh-cn\n" +
"\n").getBytes("UTF-8");
out.write(bytes);
out.flush();
byte[] bt=new byte[1024];
InputStreamReader isr;
int len;
baos.reset();
while((len=in.read(bt))>-1){
baos.write(bt, 0, len);
}
Vector<String> v=GetStartEndValue(baos.toString(),"\\(","\\)", 0);
if (v.size()>0){
System.out.println(v.firstElement());
}
baos.close();
in.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/// <summary>
/// 获得字符串中开始和结束字符串中间得值
/// </summary>
/// <param name="str">字符串</param>
/// <param name="s">开始</param>
/// <param name="e">结束</param>
///<param name="azimuth">匹配内容是否包含开始与结束符号,0:不包含 1:包含</param>
/// <returns></returns>
public static Vector<String> GetStartEndValue(String str, String s, String e,int azimuth){
Pattern pattern;
if (azimuth==1){
pattern = Pattern.compile("(?=(" + s + "))[.\\s\\S]*?(?<=(" + e + "))");
}else{
pattern = Pattern.compile("(?<=(" + s + "))[.\\s\\S]*?(?=(" + e + "))");
}
Matcher matcher = pattern.matcher(str);
StringBuffer buffer = new StringBuffer();
Vector<String> vector=new Vector<String>();
while(matcher.find()){
vector.add(matcher.group());
}
return vector;
}
}