首页  :: 新随笔  :: 管理

java socket HTTPClient GET

Posted on 2011-01-10 16:49  季枫  阅读(1970)  评论(0)    收藏  举报

 

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;
    }
}

 

智读 | 成都会领科技有限公司官网 | 智读App下载 | 每天听本书的博客 | |