/// <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); } }