Wrap text
Report abuse
|
|
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;
}
}
}
|