Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
using System; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Net; using System.IO; namespace SilverlightFrontend3.Helpers { public class HTTPService { public String Url { get; set; } private String method = "GET"; private String contentType = "application/x-www-form-urlencoded"; private String parameters = " "; public event HttpServiceCompleteEventHandler ServiceComplete; private void OnServiceComplete(HttpServiceCompleteEventArgs e) { if (this.ServiceComplete != null) { this.ServiceComplete(e); } } public HTTPService() { } public void send() { send(" "); } public void send(String parameters) { if (method == "GET") { WebClient client = new WebClient(); client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCompleted); client.DownloadStringAsync(new Uri(Url)); } else { this.parameters = parameters; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(Url)); request.ContentType = contentType; request.Method = method; request.BeginGetRequestStream(new AsyncCallback(RequestReady), request); request.BeginGetResponse(new AsyncCallback(ResponseReady), request); } } void RequestReady(IAsyncResult asyncResult) { WebRequest request = asyncResult.AsyncState as WebRequest; Stream requestStream = request.EndGetRequestStream(asyncResult); StreamWriter writer = new StreamWriter(requestStream); writer.Write(parameters); writer.Flush(); } void ResponseReady(IAsyncResult asyncResult) { WebRequest request = asyncResult.AsyncState as WebRequest; using (WebResponse response = request.EndGetResponse(asyncResult)) using (Stream responseStream = response.GetResponseStream()) { StreamReader reader = new StreamReader(responseStream); OnServiceComplete(new HttpServiceCompleteEventArgs(reader.ReadToEnd())); } } void DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { OnServiceComplete(new HttpServiceCompleteEventArgs(e.Result)); } public string ContentType { get { return contentType; } set { contentType = value; } } public string Method { get { return method; } set { method = value; } } } public delegate void HttpServiceCompleteEventHandler(HttpServiceCompleteEventArgs e); public class HttpServiceCompleteEventArgs : EventArgs { public string Response { get; set; } public HttpServiceCompleteEventArgs(string response) { this.Response = response; } } }
This paste will be private.
From the Design Piracy series on my blog: