public static byte[] GetBytes(HttpRequestHead header, IDictionary pList)
        {
            var    plistWriter = new System.Runtime.Serialization.Plists.BinaryPlistWriter();
            string content     = System.Runtime.Serialization.Plists.PlistXmlDocument.CreateDocument(pList);

            var sb = new StringBuilder();

            sb.AppendFormat("{0} {1}  /1.1 HTTP/{2}.{3}\r\n", header.Method, header.Path, header.Version.Major, header.Version.Minor);
            if (!string.IsNullOrEmpty(content))
            {
                header.Headers["Content-Length"] = Encoding.UTF8.GetByteCount(content).ToString();
                header.Headers["Content-Type"]   = @"text/x-apple-plist+xml";
            }

            foreach (var pair in header.Headers)
            {
                foreach (var line in pair.Value.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries))
                {
                    sb.AppendFormat("{0}: {1}\r\n", pair.Key, line);
                }
            }
            sb.Append("\r\n");
            sb.Append(content);
            sb.Append("\r\n");

            return(Encoding.UTF8.GetBytes(sb.ToString()));
        }
Ejemplo n.º 2
0
        public static byte[] GetBytes(HttpRequestHead header, IDictionary pList)
        {
            var plistWriter = new System.Runtime.Serialization.Plists.BinaryPlistWriter();
            string content = System.Runtime.Serialization.Plists.PlistXmlDocument.CreateDocument(pList);

            var sb = new StringBuilder();
            sb.AppendFormat("{0} {1}  /1.1 HTTP/{2}.{3}\r\n",header.Method,header.Path,header.Version.Major,header.Version.Minor);
            if (!string.IsNullOrEmpty(content))
            {
                header.Headers["Content-Length"] = Encoding.UTF8.GetByteCount(content).ToString();
                header.Headers["Content-Type"] = @"text/x-apple-plist+xml";
            }

            foreach (var pair in header.Headers)
                foreach (var line in pair.Value.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries))
                    sb.AppendFormat("{0}: {1}\r\n", pair.Key, line);
            sb.Append("\r\n");
            sb.Append(content);
            sb.Append("\r\n");

            return Encoding.UTF8.GetBytes(sb.ToString());
        }