zoukankan      html  css  js  c++  java
  • socket编程2-httpclient

    /*不能接收数据*/

    package Chapter2;

    import java.io.*;
    import java.net.*;

    public class HTTPClient {
        String host = "www.baidu.com";
        int port = 80;
        Socket socket;

        public void createSocket() throws UnknownHostException, IOException {
            socket = new Socket("www.baidu.com", 80);
            System.out.println("---已连接---");
        }

        public void communicate() throws IOException {
            System.out.println("---正在发送数据---");
            StringBuffer sb = new StringBuffer("GET "+"/more/"+" HTTP/1.1 ");
            sb.append("Host: www.baidu.com ");
            sb.append("Accept: */* ");
            sb.append("Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 ");
            sb.append("Accept-Encoding: gzip, deflate ");
            sb.append("User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0 ");
            sb.append("Connection: keep-alive ");

                // 发出HTTP请求
                OutputStream socketOut = socket.getOutputStream();
                // 发送数据时,先把字符串形式的请求信息转换为字节数组,再发送
                socketOut.write(sb.toString().getBytes());
    //            socket.shutdownOutput();// 关闭输出流
                System.out.println("---完成发送,正在接收数据---");
                // 接收响应结果
                // 接收数据时,把接收到的字节写到一个ByteArrayOutputStream中(具有可自动增长的缓冲区)
                InputStream socketIn = socket.getInputStream();
                ByteArrayOutputStream buffer = new  ByteArrayOutputStream();
                byte[] buff = new byte[1024];
                int len = -1;
                while ((len=socketIn.read(buff))!= -1) {
                buffer.write(buff, 0, len);
                }
                System.out.println(new String(buffer.toByteArray()));
                socket.close();
                // 把字节数据转换成字符串
    //            BufferedReader br = new BufferedReader(new InputStreamReader(socketIn));
    //            String data;
    //            while ((data=br.readLine()) != null) {
    //                System.out.println(data);
    //            }System.out.println("---完成接收---");

        }

        public static void main(String[] args) throws Exception {
            HTTPClient client = new HTTPClient();
            client.createSocket();
            client.communicate();
        }

    }

  • 相关阅读:
    通过git命令行从github或服务器上克隆、修改和更新项目
    将项目部署到 github上(部署到码云操作一样,前提是有码云账号)
    tp5中代替tp3.2中的一些方法
    关于ThinkPHP下使用Uploadify插件 仅有火狐提示HTTP Error (302)错误的解决办法
    nginx轮询宕机解决
    nginx实现动静分离
    nginx实现负载均衡
    nginx实现反向代理
    解决表单重复提交
    解决跨域问题
  • 原文地址:https://www.cnblogs.com/stay-sober/p/4158796.html
Copyright © 2011-2022 走看看