예제 #1
0
        private SendHeaderInfo GetSendHeaders(string header)
        {
            SendHeaderInfo send    = new SendHeaderInfo();
            var            headers = Regex.Split(header, "\r\n");

            List <string> listHeader = new List <string>();

            for (int i = 0; i < headers.Length; i++)
            {
                var arr = headers[i].Split(' ');
                if (arr[0] == "GET" ||
                    arr[0] == "POST" ||
                    arr[0] == "OPTIONS")
                {
                    send.Uri = new Uri(arr[1]);
                    //arr[1] = send.Uri.PathAndQuery;

                    //headers[i] = string.Join(" ", arr);
                }

                if (headers[i].StartsWith("Content-Length", StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }

                listHeader.Add(headers[i]);
            }

            send.Header = header;// string.Join("\r\n", listHeader);
            return(send);
        }
예제 #2
0
파일: HttpS.cs 프로젝트: hukuolin/TecentDA
        /// <summary>
        /// Test
        /// </summary>
        /// <param name="header"></param>
        /// <returns></returns>
        private SendHeaderInfo GetSendHeaders(string header)
        {
            SendHeaderInfo send    = new SendHeaderInfo();
            var            headers = Regex.Split(header, "\r\n");

            List <string> lstHeaders = new List <string>();

            for (int i = 0; i < headers.Length; i++)
            {
                var arr = headers[i].Split(' ');
                if (arr[0] == "GET" ||
                    arr[0] == "POST" ||
                    arr[0] == "OPTIONS")
                {
                    send.Uri = new Uri(arr[1]);
                    arr[1]   = send.Uri.PathAndQuery;

                    headers[i] = string.Join(" ", arr);
                }

                lstHeaders.Add(headers[i]);
            }

            send.HeaderByte = Encoding.UTF8.GetBytes(string.Join("\r\n", lstHeaders.ToArray()));
            return(send);
        }
예제 #3
0
        private SendHeaderInfo GetSendHeaders(string header, string fileName = "")
        {
            var strFileName = "";

            byte[] temp = null;
            if (fileName != "")
            {
                strFileName = Path.GetFileName(fileName);
                temp        = File.ReadAllBytes(fileName);
                header      = header.Replace("[CD]", temp.Length + "");

                header = header.Replace("{filename}", strFileName);
                if (strFileName.EndsWith("mp3", StringComparison.OrdinalIgnoreCase))
                {
                    header = header.Replace("{filetype}", "audio/mp3");
                }

                if (strFileName.EndsWith("gif", StringComparison.OrdinalIgnoreCase))
                {
                    header = header.Replace("{filetype}", "image/gif");
                }

                if (strFileName.EndsWith("png", StringComparison.OrdinalIgnoreCase))
                {
                    header = header.Replace("{filetype}", "image/png");
                }

                if (strFileName.EndsWith("jpg", StringComparison.OrdinalIgnoreCase))
                {
                    header = header.Replace("{filetype}", "image/jpg");
                }
            }

            SendHeaderInfo send    = new SendHeaderInfo();
            var            headers = Regex.Split(header, "\r\n");

            List <byte>   body  = new List <byte>();
            List <string> sbody = new List <string>();

            for (int i = 0; i < headers.Length; i++)
            {
                var arr = headers[i].Split(' ');
                if (arr[0] == "GET" ||
                    arr[0] == "POST" ||
                    arr[0] == "OPTIONS")
                {
                    send.Uri = new Uri(arr[1]);
                    //arr[1] = send.Uri.PathAndQuery;

                    //headers[i] = string.Join(" ", arr);
                }

                if (headers[i].StartsWith("Content-Length", StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }

                if (headers[i] == "[FILE]")
                {
                    if (temp != null)
                    {
                        var byt = temp;
                        foreach (var b in byt)
                        {
                            body.Add(b);
                        }

                        continue;
                    }
                }

                {
                    var line = "";
                    if (body.Count > 0)
                    {
                        line = "\r\n";
                    }
                    var byt = Encoding.UTF8.GetBytes(line + headers[i]);
                    foreach (var b in byt)
                    {
                        body.Add(b);
                    }

                    sbody.Add(headers[i]);
                    continue;
                }
            }

            send.HeaderByte = body.ToArray();
            send.Header     = string.Join("\r\n", sbody);
            return(send);
        }