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

来源:互联网 发布:淘宝上配眼镜靠谱么 编辑:程序博客网 时间:2024/06/16 08:40

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

    }

原创粉丝点击