ParseMessageFromFile() публичный статический Метод

public static ParseMessageFromFile ( string filePath ) : Message
filePath string
Результат Message
Пример #1
0
        /// <summary>
        /// Queries the server.
        /// </summary>
        /// <param name="host">The host.</param>
        /// <param name="port">The port.</param>
        /// <param name="message">The message.</param>
        /// <param name="filename">The filename.</param>
        /// <returns></returns>
        private static CtchResponse QueryServer(string host, int port, Message message, string filename)
        {
            bool reference = true;

            if (message != null)
            {
                reference = false;
            }
            else
            {
                message = Parser.ParseMessageFromFile(filename);
            }

            string version = "0000001";

            // Prepare the commtouch headers
            string content = string.Format("X-CTCH-PVer: {0}\r\nX-CTCH-MailFrom: {1}\r\nX-CTCH-SenderIP: {2}\r\n", version, message.Sender.Email, message.SenderIP);

            if (reference)
            {
                content += string.Format("X-CTCH-FileName: {0}\r\n", filename);
            }
            else
            {
                content += string.Format("\r\n{0}", message.ToMimeString());
            }

            // Prepare the request with HTTP header
            string request = string.Format("POST /ctasd/{0} HTTP/1.0\r\nContent-Length: {1}\r\n\r\n", (reference ? "ClassifyMessage_File" : "ClassifyMessage_Inline"), content.Length)
                             + content;

            //try
            //{

            TcpClient client = new TcpClient();

            client.Connect(host, port);

            Byte[] data = System.Text.Encoding.ASCII.GetBytes(request);

            //  Stream stream = client.GetStream();
            NetworkStream stream = client.GetStream();

            // Send the message to the connected TcpServer.
            stream.Write(data, 0, data.Length);

#if DEBUG
            Console.WriteLine("<requestSent>");
            Console.WriteLine("{0}", request);
            Console.WriteLine("</requestSent>");
#endif
            // Receive the TcpServer.response.

            // Buffer to store the response bytes.
            data = new Byte[256];

            // String to store the response ASCII representation.
            String responseData = String.Empty;

            // Read the first batch of the TcpServer response bytes.
            Int32 bytes = stream.Read(data, 0, data.Length);
            responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);

#if DEBUG
            Console.WriteLine("<responseReceived>");
            Console.WriteLine("{0}", responseData);
            Console.WriteLine("</responseReceived>");
#endif

            CtchResponse ctchResponse = CtchResponse.ParseFromString(responseData);

#if DEBUG
            Console.WriteLine(ctchResponse.ToString());
#endif
            // Close everything.
            stream.Close();
            client.Close();
            //}
            //catch (ArgumentNullException e)
            //{
            //    Console.WriteLine("ArgumentNullException: {0}", e);
            //}
            //catch (SocketException e)
            //{
            //    Console.WriteLine("SocketException: {0}", e);
            //}

            return(ctchResponse);
        }