Пример #1
0
        private static int parseHeader(Stream stream, out TcpClientResponse tcpClientResponse)
        {
            tcpClientResponse = null;
            var header = new StringBuilder();
            //string headertext = "";
            while (true)
            {
                byte[] data = new byte[1];
                int recv = stream.Read(data, 0, 1);
                char c = (char)data[0];
                header.Append(c);
                if (header.ToString().IndexOf("\r\n\r\n") > 0)
                {
                    tcpClientResponse = new TcpClientResponse();
                    var strHeader = header.ToString();
                    tcpClientResponse.ContentLength = extractContentLength(strHeader);
                    tcpClientResponse.ContentType = extractContentType(strHeader);
                    tcpClientResponse.StatusCode = extractStatusCode(strHeader);
                    tcpClientResponse.StatusDescription = extractStatusDescription(strHeader);
                    //headertext = header.ToString().Substring(start + content.Length);
                    //int end = headertext.IndexOf("\r\n");
                    //headertext = headertext.Substring(0, end); //包体长度
                    break;
                }
            }

            return header.Length;
        }
Пример #2
0
        private static int parseHeader(Stream stream, out TcpClientResponse tcpClientResponse)
        {
            tcpClientResponse = null;
            var header = new StringBuilder();

            //string headertext = "";
            while (true)
            {
                byte[] data = new byte[1];
                int    recv = stream.Read(data, 0, 1);
                char   c    = (char)data[0];
                header.Append(c);
                if (header.ToString().IndexOf("\r\n\r\n") > 0)
                {
                    tcpClientResponse = new TcpClientResponse();
                    var strHeader = header.ToString();
                    tcpClientResponse.ContentLength     = extractContentLength(strHeader);
                    tcpClientResponse.ContentType       = extractContentType(strHeader);
                    tcpClientResponse.StatusCode        = extractStatusCode(strHeader);
                    tcpClientResponse.StatusDescription = extractStatusDescription(strHeader);
                    //headertext = header.ToString().Substring(start + content.Length);
                    //int end = headertext.IndexOf("\r\n");
                    //headertext = headertext.Substring(0, end); //包体长度
                    break;
                }
            }

            return(header.Length);
        }