private void SaveXML(string uri, string path, Cookie session) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.Method = "GET"; // request.Accept = "text/html,application/xhtml+xml,application/xml"; request.CookieContainer = new CookieContainer(); request.CookieContainer.Add(session); // request.CookieContainer.Add(new Cookie("_osm_location", "-0.12400650233031|51.526474001441|15|M", null, "www.openstreetmap.org")); request.Timeout = 1000 * 60 * 5; // HttpWebResponse response = (HttpWebResponse)request.GetResponse(); int counter = 0; HttpWebResponseWorker worker = new HttpWebResponseWorker(request); while (worker.IsBusy) { Log(string.Format("Please wait ... {0}", counter++)); System.Threading.Thread.Sleep(500); } HttpWebResponse response = worker.Response; // if (response.ContentLength > 0) { const int bufferSize = 2048; System.IO.Stream strm = response.GetResponseStream(); FileStream fs = File.Open(path, FileMode.Create); int length = 0; int bytesRead = 0; do { byte[] buffer = new byte[bufferSize]; // int bytesRead = strm.Read(buffer, 0, bufferSize); fs.Write(buffer, 0, bytesRead); length += bytesRead; Log(string.Format("Saving {0} ...", length)); // } while (length < response.ContentLength); } while (bytesRead > 0); fs.Close(); } response.Close(); }
private void SavePost(string uri, string data, string path, Cookie session) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; // request.Accept = "text/html,application/xhtml+xml,application/xml"; request.CookieContainer = new CookieContainer(); request.CookieContainer.Add(session); // request.CookieContainer.Add(new Cookie("_osm_location", "-0.12400650233031|51.526474001441|15|M", null, "www.openstreetmap.org")); byte[] byteArray = Encoding.UTF8.GetBytes(data); request.ContentLength = byteArray.Length; Stream streamRequest = request.GetRequestStream(); streamRequest.Write(byteArray, 0, byteArray.Length); streamRequest.Close(); // HttpWebResponse response = (HttpWebResponse)request.GetResponse(); int counter = 0; HttpWebResponseWorker worker = new HttpWebResponseWorker(request); while (worker.IsBusy) { Log(string.Format("Please wait ... {0}", counter++)); System.Threading.Thread.Sleep(500); } HttpWebResponse response = worker.Response; if (response != null) { if (response.ContentLength > 0) { const int bufferSize = 2048; System.IO.Stream strm = response.GetResponseStream(); FileStream fs = File.Open(path, FileMode.Create); int length = 0; do { byte[] buffer = new byte[bufferSize]; int bytesRead = strm.Read(buffer, 0, bufferSize); fs.Write(buffer, 0, bytesRead); length += bytesRead; } while (length < response.ContentLength); fs.Close(); } else textBox1.Text = worker.Exception.Message; response.Close(); } }