/// <summary>
        ///     async WebRequest and Synchronize WebResponse
        /// </summary>
        /// <param name="uri">http://114.35.57.190:889/sweet/ibon_apn.php</param>
        public static void fAnsycWebRequest(string uri)
        {
            try
            {
                allDone = new System.Threading.ManualResetEvent(false);

                // 建立WebRequest抽像類別物件
                WebRequest MyWebRequest = WebRequest.Create(uri);

                // 建立State物件
                RequestState State = new RequestState();

                State.Request        = MyWebRequest;
                State.Request.Method = "POST";

                // start ansyc process client request
                // define Callback function is RequestCallback
                IAsyncResult result = MyWebRequest.BeginGetRequestStream(new AsyncCallback(RequestCallback), State);

                // Wait until asynchronous call completes.
                allDone.WaitOne();

                // using WEbRequest class's GetResponse function create WebResponse object
                WebResponse MyWebResponse = MyWebRequest.GetResponse();

                string responseResulte = "";

                responseResulte += "ContentLength: " + MyWebResponse.ContentLength.ToString() + "\r\n"; // client catch data length
                responseResulte += "ContentType: " + MyWebResponse.ContentType.ToString() + "\r\n";     // client catch data MIME type
                responseResulte += "ResponseUri: " + MyWebResponse.ResponseUri.ToString() + "\r\n";     // client catch from uri

                MessageBox.Show(responseResulte);

                // get server response stream
                Stream respStream = MyWebResponse.GetResponseStream();

                // setting encode is utf-8 and get server response stream context
                StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8);

                string strBuff = "";
                char[] cbuffer = new char[256];

                int byteRead = respStreamReader.Read(cbuffer, 0, 256);

                while (byteRead != 0)
                {
                    string strResp = new string(cbuffer, 0, byteRead);
                    strBuff += strResp;
                    byteRead = respStreamReader.Read(cbuffer, 0, 256);
                }

                MessageBox.Show(strBuff);

                // close response stream
                respStream.Close();
                // close WebResponse object
                MyWebResponse.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        /// <summary>
        ///     async WebRequest and Synchronize WebResponse
        /// </summary>
        /// <param name="uri">http://114.35.57.190:889/sweet/ibon_apn.php</param>
        public static void fAnsycWebRequest(string uri)
        {
            try
            {
                allDone = new System.Threading.ManualResetEvent(false);

                // 建立WebRequest抽像類別物件
                WebRequest MyWebRequest = WebRequest.Create(uri);

                // 建立State物件
                RequestState State = new RequestState();

                State.Request = MyWebRequest;
                State.Request.Method = "POST";

                // start ansyc process client request
                // define Callback function is RequestCallback
                IAsyncResult result = MyWebRequest.BeginGetRequestStream(new AsyncCallback(RequestCallback), State);

                // Wait until asynchronous call completes.
                allDone.WaitOne();

                // using WEbRequest class's GetResponse function create WebResponse object
                WebResponse MyWebResponse = MyWebRequest.GetResponse();

                string responseResulte = "";

                responseResulte += "ContentLength: " + MyWebResponse.ContentLength.ToString() + "\r\n"; // client catch data length
                responseResulte += "ContentType: " + MyWebResponse.ContentType.ToString() + "\r\n"; // client catch data MIME type
                responseResulte += "ResponseUri: " + MyWebResponse.ResponseUri.ToString() + "\r\n"; // client catch from uri

                MessageBox.Show(responseResulte);

                // get server response stream
                Stream respStream = MyWebResponse.GetResponseStream();

                // setting encode is utf-8 and get server response stream context
                StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8);

                string strBuff = "";
                char[] cbuffer = new char[256];

                int byteRead = respStreamReader.Read(cbuffer, 0, 256);

                while (byteRead != 0)
                {
                    string strResp = new string(cbuffer, 0, byteRead);
                    strBuff += strResp;
                    byteRead = respStreamReader.Read(cbuffer, 0, 256);
                }

                MessageBox.Show(strBuff);

                // close response stream
                respStream.Close();
                // close WebResponse object
                MyWebResponse.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }