cuiyaoqiang
崔耀强
2016-12-31 03:20
采纳率: 25%
浏览 1.2k
已采纳

httpurlconnection post请求中如何能保证请求头与正文是一次发送

httpurlconnection post请求中正文是在获取inputstream的时候发送,那请求头是不是在outputsream关闭的时候发送呢,如何能保证他两是一起发送?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • cuiyaoqiang
    崔耀强 2017-01-03 08:36
    已采纳
                // 读取客户端数据    
                InputStream socketIn=socket.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(socketIn));
                String msg=null;
                int content_Length = 0;
                while((msg=br.readLine())!=null){
                    System.out.println(msg);
                    if(msg.contains("Content-Length")){
                        content_Length=Integer.parseInt(msg.split(":")[1].trim());
                    }
                    if("".equals(msg)){
                        int readSize;  
                        char[] chars = null;  
                        chars = new char[content_Length];  
                        long length_tmp = content_Length;  
                        long index = 0;// start from zero  
                        while ((readSize = br.read(chars, (int) index, (int) length_tmp)) != -1) {
                            length_tmp -= readSize;  
                            if (length_tmp == 0) {  
                                break;  
                            }  
                            index = index + readSize;// 写入字符数组的offset(偏移量)  
                        } 
                        System.out.println(new String(chars));
                    }
                }
    
    点赞 评论
  • Ro_bot
    「已注销」 2016-12-31 04:27

    可以去了解下http协议和tcp协议

    点赞 评论
  • u010434246
    Android 研发 2016-12-31 06:35

    个人认为:只要是一次请求,那肯定是一起发送的。

    点赞 评论
  • caozhy

    如果你没有用range断点续传,就是一次发送的,你可以用fiddler这个工具抓包证实这一点

    点赞 评论
  • cuiyaoqiang
    崔耀强 2017-01-03 01:14

    httpurlconnection发送请求 服务端开启socket服务接收 就会发现正文是在获取inputstream的时候发送而报头是在outputstream关闭的时候发送的

    点赞 评论

相关推荐