public void ContentEncoding_Disposed () { IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000); string url = "http://" + ep.ToString () + "/test/"; using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) { responder.Start (); HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; HttpWebResponse resp = (HttpWebResponse) req.GetResponse (); ((IDisposable) resp).Dispose (); try { string enc = resp.ContentEncoding; Assert.Fail ("#1:" + enc); } catch (ObjectDisposedException ex) { Assert.AreEqual (typeof (ObjectDisposedException), ex.GetType (), "#2"); Assert.IsNull (ex.InnerException, "#3"); Assert.IsNotNull (ex.Message, "#4"); Assert.AreEqual (typeof (HttpWebResponse).FullName, ex.ObjectName, "#5"); } } }
public void Read_Count_Negative() { IPEndPoint ep = new IPEndPoint(IPAddress.Loopback, 8000); string url = "http://" + ep.ToString() + "/test/"; using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(HttpWebResponseTest.FullResponseHandler))) { responder.Start(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) { Stream rs = resp.GetResponseStream(); byte [] buffer = new byte [5]; try { try { rs.Read(buffer, 1, -1); Assert.Fail("#A1"); } catch (ArgumentOutOfRangeException ex) { // Specified argument was out of the range of valid values Assert.AreEqual(typeof(ArgumentOutOfRangeException), ex.GetType(), "#A2"); Assert.IsNull(ex.InnerException, "#A3"); Assert.IsNotNull(ex.Message, "#A4"); Assert.AreEqual("size", ex.ParamName, "#A5"); } // read full response buffer = new byte [24]; Assert.AreEqual(9, rs.Read(buffer, 0, buffer.Length)); try { rs.Read(buffer, 1, -1); Assert.Fail("#B1"); } catch (ArgumentOutOfRangeException ex) { // Specified argument was out of the range of valid values Assert.AreEqual(typeof(ArgumentOutOfRangeException), ex.GetType(), "#B2"); Assert.IsNull(ex.InnerException, "#B3"); Assert.IsNotNull(ex.Message, "#B4"); Assert.AreEqual("size", ex.ParamName, "#B5"); } } finally { rs.Close(); req.Abort(); } } } }
public void Read_Buffer_Null() { IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint(); string url = "http://" + ep.ToString() + "/test/"; using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(HttpWebResponseTest.FullResponseHandler))) { responder.Start(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) { Stream rs = resp.GetResponseStream(); byte [] buffer = null; try { try { rs.Read(buffer, 0, 0); Assert.Fail("#A1"); } catch (ArgumentNullException ex) { Assert.AreEqual(typeof(ArgumentNullException), ex.GetType(), "#A2"); Assert.IsNull(ex.InnerException, "#A3"); Assert.IsNotNull(ex.Message, "#A4"); Assert.AreEqual("buffer", ex.ParamName, "#A5"); } // read full response buffer = new byte [24]; Assert.AreEqual(9, rs.Read(buffer, 0, buffer.Length)); buffer = null; try { rs.Read(buffer, 0, 0); Assert.Fail("#B1"); } catch (ArgumentNullException ex) { Assert.AreEqual(typeof(ArgumentNullException), ex.GetType(), "#B2"); Assert.IsNull(ex.InnerException, "#B3"); Assert.IsNotNull(ex.Message, "#B4"); Assert.AreEqual("buffer", ex.ParamName, "#B5"); } } finally { rs.Close(); req.Abort(); } } } }
public void Close_Disposed() { IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint(); string url = "http://" + ep.ToString() + "/test/"; using (SocketResponder responder = new SocketResponder(ep, s => FullResponseHandler(s))) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); ((IDisposable)resp).Dispose(); resp.Close(); } }
public void Close_Disposed () { IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000); string url = "http://" + ep.ToString () + "/test/"; using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) { responder.Start (); HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; HttpWebResponse resp = (HttpWebResponse) req.GetResponse (); ((IDisposable) resp).Dispose (); resp.Close (); } }
public void Close_Disposed() { IPEndPoint ep = new IPEndPoint(IPAddress.Loopback, 8000); string url = "http://" + ep.ToString() + "/test/"; using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(FullResponseHandler))) { responder.Start(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); ((IDisposable)resp).Dispose(); resp.Close(); } }
public void StatusCode_Disposed() { IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint(); string url = "http://" + ep.ToString() + "/test/"; using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(FullResponseHandler))) { responder.Start(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); ((IDisposable)resp).Dispose(); Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode); } }
public void Headers_Disposed() { IPEndPoint ep = new IPEndPoint(IPAddress.Loopback, 8000); string url = "http://" + ep.ToString() + "/test/"; using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(FullResponseHandler))) { responder.Start(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); ((IDisposable)resp).Dispose(); #if NET_2_0 WebHeaderCollection headers = resp.Headers; Assert.AreEqual(6, headers.Count, "#1"); Assert.AreEqual("9", headers ["Content-Length"], "#2"); Assert.AreEqual("utf-8", headers ["Content-Encoding"], "#3"); Assert.AreEqual("text/xml; charset=UTF-8", headers ["Content-Type"], "#4"); Assert.AreEqual("Wed, 08 Jan 2003 23:11:55 GMT", headers ["Last-Modified"], "#5"); Assert.AreEqual("UserID=Miguel,StoreProfile=true", headers ["Set-Cookie"], "#6"); Assert.AreEqual("Mono/Test", headers ["Server"], "#7"); #else try { WebHeaderCollection headers = resp.Headers; Assert.Fail("#1:" + headers); } catch (ObjectDisposedException ex) { Assert.AreEqual(typeof(ObjectDisposedException), ex.GetType(), "#2"); Assert.IsNull(ex.InnerException, "#3"); Assert.IsNotNull(ex.Message, "#4"); Assert.AreEqual(typeof(HttpWebResponse).FullName, ex.ObjectName, "#5"); } #endif } }
public void Cookies_Disposed() { IPEndPoint ep = new IPEndPoint(IPAddress.Loopback, 8000); string url = "http://" + ep.ToString() + "/test/"; using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(FullResponseHandler))) { responder.Start(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); ((IDisposable)resp).Dispose(); try { CookieCollection cookies = resp.Cookies; Assert.Fail("#A1:" + cookies); } catch (ObjectDisposedException ex) { Assert.AreEqual(typeof(ObjectDisposedException), ex.GetType(), "#A2"); Assert.IsNull(ex.InnerException, "#A3"); Assert.IsNotNull(ex.Message, "#A4"); Assert.AreEqual(typeof(HttpWebResponse).FullName, ex.ObjectName, "#A5"); } try { resp.Cookies = new CookieCollection(); Assert.Fail("#B1"); } catch (ObjectDisposedException ex) { Assert.AreEqual(typeof(ObjectDisposedException), ex.GetType(), "#B2"); Assert.IsNull(ex.InnerException, "#B3"); Assert.IsNotNull(ex.Message, "#B4"); Assert.AreEqual(typeof(HttpWebResponse).FullName, ex.ObjectName, "#B5"); } } }
public void Read() { IPEndPoint ep = new IPEndPoint(IPAddress.Loopback, 8000); string url = "http://" + ep.ToString() + "/test/"; using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(HttpWebResponseTest.FullResponseHandler))) { responder.Start(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) { Stream rs = resp.GetResponseStream(); byte [] buffer = new byte [5]; try { Assert.AreEqual(1, rs.Read(buffer, 4, 1), "#A1"); Assert.AreEqual(new byte [] { 0x00, 0x00, 0x00, 0x00, 0x3c }, buffer, "#A2"); Assert.AreEqual(2, rs.Read(buffer, 0, 2), "#B1"); Assert.AreEqual(new byte [] { 0x64, 0x75, 0x00, 0x00, 0x3c }, buffer, "#B2"); Assert.AreEqual(4, rs.Read(buffer, 1, 4), "#C1"); Assert.AreEqual(new byte [] { 0x64, 0x6d, 0x6d, 0x79, 0x20 }, buffer, "#C2"); Assert.AreEqual(2, rs.Read(buffer, 0, 3), "#D1"); Assert.AreEqual(new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#D2"); Assert.AreEqual(0, rs.Read(buffer, 1, 3), "#E1"); Assert.AreEqual(new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#E2"); Assert.AreEqual(0, rs.Read(buffer, buffer.Length, 0), "#G1"); Assert.AreEqual(new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#G2"); } finally { rs.Close(); req.Abort(); } } } }
public void Read_Stream_Closed () { IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000); string url = "http://" + ep.ToString () + "/test/"; using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) { responder.Start (); HttpWebRequest req; req = (HttpWebRequest) WebRequest.Create (url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) { Stream rs = resp.GetResponseStream (); rs.Close (); try { rs.Read (new byte [0], 0, 0); Assert.Fail ("#A1"); } catch (WebException ex) { // The request was aborted: The connection was closed unexpectedly Assert.AreEqual (typeof (WebException), ex.GetType (), "#A2"); Assert.IsNull (ex.InnerException, "#A3"); Assert.IsNotNull (ex.Message, "#A4"); Assert.IsNull (ex.Response, "#A5"); Assert.AreEqual (WebExceptionStatus.ConnectionClosed, ex.Status, "#A6"); } finally { rs.Close (); req.Abort (); } } req = (HttpWebRequest) WebRequest.Create (url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) { Stream rs = resp.GetResponseStream (); byte [] buffer = new byte [24]; Assert.AreEqual (9, rs.Read (buffer, 0, buffer.Length)); rs.Close (); try { rs.Read (new byte [0], 0, 0); Assert.Fail ("#B1"); } catch (WebException ex) { // The request was aborted: The connection was closed unexpectedly Assert.AreEqual (typeof (WebException), ex.GetType (), "#B2"); Assert.IsNull (ex.InnerException, "#B3"); Assert.IsNotNull (ex.Message, "#B4"); Assert.IsNull (ex.Response, "#B5"); Assert.AreEqual (WebExceptionStatus.ConnectionClosed, ex.Status, "#B6"); } finally { rs.Close (); req.Abort (); } } } }
public void Read_Offset_Overflow () { IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000); string url = "http://" + ep.ToString () + "/test/"; using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) { responder.Start (); HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) { Stream rs = resp.GetResponseStream (); byte [] buffer = new byte [5]; try { try { rs.Read (buffer, buffer.Length + 1, 0); Assert.Fail ("#A1"); } catch (ArgumentOutOfRangeException ex) { // Specified argument was out of the range of valid values Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#A2"); Assert.IsNull (ex.InnerException, "#A3"); Assert.IsNotNull (ex.Message, "#A4"); Assert.AreEqual ("offset", ex.ParamName, "#A5"); } // read full response buffer = new byte [24]; Assert.AreEqual (9, rs.Read (buffer, 0, buffer.Length)); try { rs.Read (buffer, buffer.Length + 1, 0); Assert.Fail ("#B1"); } catch (ArgumentOutOfRangeException ex) { // Specified argument was out of the range of valid values Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#B2"); Assert.IsNull (ex.InnerException, "#B3"); Assert.IsNotNull (ex.Message, "#B4"); Assert.AreEqual ("offset", ex.ParamName, "#B5"); } } finally { rs.Close (); req.Abort (); } } } }
public void BeginWrite () { IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000); string url = "http://" + ep.ToString () + "/test/"; using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) { responder.Start (); HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) { Stream rs = resp.GetResponseStream (); byte [] buffer = new byte [5]; try { rs.BeginWrite (buffer, 0, buffer.Length, null, null); Assert.Fail ("#1"); } catch (NotSupportedException ex) { // The stream does not support writing Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2"); Assert.IsNull (ex.InnerException, "#3"); Assert.IsNotNull (ex.Message, "#4"); } finally { rs.Close (); req.Abort (); } } } }
public void Headers_Disposed () { IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000); string url = "http://" + ep.ToString () + "/test/"; using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) { responder.Start (); HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; HttpWebResponse resp = (HttpWebResponse) req.GetResponse (); ((IDisposable) resp).Dispose (); WebHeaderCollection headers = resp.Headers; Assert.AreEqual (6, headers.Count, "#1"); Assert.AreEqual ("9", headers ["Content-Length"], "#2"); Assert.AreEqual ("utf-8", headers ["Content-Encoding"], "#3"); Assert.AreEqual ("text/xml; charset=UTF-8", headers ["Content-Type"], "#4"); Assert.AreEqual ("Wed, 08 Jan 2003 23:11:55 GMT", headers ["Last-Modified"], "#5"); Assert.AreEqual ("UserID=Miguel,StoreProfile=true", headers ["Set-Cookie"], "#6"); Assert.AreEqual ("Mono/Test", headers ["Server"], "#7"); } }
public void Read_Stream_Closed() { IPEndPoint ep = new IPEndPoint(IPAddress.Loopback, 8000); string url = "http://" + ep.ToString() + "/test/"; using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(HttpWebResponseTest.FullResponseHandler))) { responder.Start(); HttpWebRequest req; req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) { Stream rs = resp.GetResponseStream(); rs.Close(); try { rs.Read(new byte [0], 0, 0); Assert.Fail("#A1"); } catch (WebException ex) { // The request was aborted: The connection was closed unexpectedly Assert.AreEqual(typeof(WebException), ex.GetType(), "#A2"); Assert.IsNull(ex.InnerException, "#A3"); Assert.IsNotNull(ex.Message, "#A4"); Assert.IsNull(ex.Response, "#A5"); Assert.AreEqual(WebExceptionStatus.ConnectionClosed, ex.Status, "#A6"); } finally { rs.Close(); req.Abort(); } } req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) { Stream rs = resp.GetResponseStream(); byte [] buffer = new byte [24]; Assert.AreEqual(9, rs.Read(buffer, 0, buffer.Length)); rs.Close(); try { rs.Read(new byte [0], 0, 0); Assert.Fail("#B1"); } catch (WebException ex) { // The request was aborted: The connection was closed unexpectedly Assert.AreEqual(typeof(WebException), ex.GetType(), "#B2"); Assert.IsNull(ex.InnerException, "#B3"); Assert.IsNotNull(ex.Message, "#B4"); Assert.IsNull(ex.Response, "#B5"); Assert.AreEqual(WebExceptionStatus.ConnectionClosed, ex.Status, "#B6"); } finally { rs.Close(); req.Abort(); } } } }
public void UploadAsyncCancelEventTest (Action<WebClient, Uri, EventWaitHandle> uploadAction) { var ep = new IPEndPoint (IPAddress.Loopback, 8000); string url = "http://" + IPAddress.Loopback + ":8000/test/"; using (var responder = new SocketResponder (ep, EchoRequestHandler)) { responder.Start (); var webClient = new WebClient (); var cancellationTokenSource = new CancellationTokenSource (); cancellationTokenSource.Token.Register (webClient.CancelAsync); var cancelEvent = new ManualResetEvent (false); uploadAction.Invoke (webClient, new Uri (url), cancelEvent); cancellationTokenSource.Cancel (); Assert.IsTrue (cancelEvent.WaitOne (1000)); } }
public void UploadValues1 () { IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000); string url = "http://" + IPAddress.Loopback.ToString () + ":8000/test/"; using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) { responder.Start (); WebClient wc = new WebClient (); wc.Encoding = Encoding.ASCII; NameValueCollection nvc = new NameValueCollection (); nvc.Add ("Name", "\u0041\u2262\u0391\u002E"); nvc.Add ("Address", "\u002E\u2262\u0041\u0391"); byte [] buffer = wc.UploadValues (url, nvc); string response = Encoding.UTF8.GetString (buffer); Assert.AreEqual ("Name=A%e2%89%a2%ce%91.&Address=.%e2%89%a2A%ce%91\r\n", response); } }
public void CanWrite () { IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000); string url = "http://" + ep.ToString () + "/test/"; using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) { responder.Start (); HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) { Stream rs = resp.GetResponseStream (); try { Assert.IsFalse (rs.CanWrite, "#1"); rs.Close (); Assert.IsFalse (rs.CanWrite, "#2"); } finally { rs.Close (); req.Abort (); } } } }
public void Read () { IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000); string url = "http://" + ep.ToString () + "/test/"; using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) { responder.Start (); HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url); req.Method = "GET"; req.Timeout = 2000; req.ReadWriteTimeout = 2000; req.KeepAlive = false; using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) { Stream rs = resp.GetResponseStream (); byte [] buffer = new byte [5]; try { Assert.AreEqual (1, rs.Read (buffer, 4, 1), "#A1"); Assert.AreEqual (new byte [] { 0x00, 0x00, 0x00, 0x00, 0x3c }, buffer, "#A2"); Assert.AreEqual (2, rs.Read (buffer, 0, 2), "#B1"); Assert.AreEqual (new byte [] { 0x64, 0x75, 0x00, 0x00, 0x3c }, buffer, "#B2"); Assert.AreEqual (4, rs.Read (buffer, 1, 4), "#C1"); Assert.AreEqual (new byte [] { 0x64, 0x6d, 0x6d, 0x79, 0x20 }, buffer, "#C2"); Assert.AreEqual (2, rs.Read (buffer, 0, 3), "#D1"); Assert.AreEqual (new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#D2"); Assert.AreEqual (0, rs.Read (buffer, 1, 3), "#E1"); Assert.AreEqual (new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#E2"); Assert.AreEqual (0, rs.Read (buffer, buffer.Length, 0), "#G1"); Assert.AreEqual (new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#G2"); } finally { rs.Close (); req.Abort (); } } } }