您的位置:首页 > 理论基础 > 计算机网络

java socket HTTPClient GET

2011-01-10 16:49 344 查看
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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: