java socket通过域名获取html文本,并得到title

上qq邮箱发送信息的时候如果你把域名复制进去都可以发现在在标题栏上会直接显示这个域名的title,觉得奇怪,于是想了个方法来实现这种效果。其中getHtmll方法返回的是html文本,而getTitle返回的是title名称

    public String getHtml(String path){

        String strServer =path;

        String strPage = "/";

        String sb = null;

        try

        {

           int port = 80;

            InetAddress addr = InetAddress.getByName(strServer);

            Socket socket = new Socket(addr, port);

            BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"));

            wr.write("GET " + strPage + " HTTP/1.0/r/n");

            wr.write("HOST:" + strServer + "/r/n");

            wr.write("Accept:*/*/r/n");

            wr.write("/r/n");

            wr.flush();

            BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));

            String line;

            while ((line = rd.readLine()) != null)

            {

                sb+=line+"/n";

            }

            wr.close();

            rd.close();

        }

        catch (Exception e)

        {

            e.printStackTrace();

        }

        return sb.toString();

    }

 

    public String getTitle(String path){

     String str=this.getHtml(path);

     int start=str.indexOf("<title>".trim());

     int end=str.indexOf("</title>".trim(),start);

     str=str.substring(start+7,end).replace("/"", " ").trim();

     return str;

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值