Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Net;
- using System.Text;
- using System.Threading;
- 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.Windows.Threading;
- namespace Wasabi.Backend
- {
- /*public class UrlConnection : UrlConnection<String>
- {
- public UrlConnection(string url, Action<String> callbackResult)
- {
- this = (UrlConnection)new UrlConnection<String>(url, callbackResult);
- }
- }*/
- public class UrlConnection
- {
- private readonly string _url;
- private string _message;
- private string _result;
- //public delegate void Update(string s);
- private Action<string> _callback;
- //private MainPage _mainPage;
- public string Result
- {
- get { return _result; }
- private set
- {
- _result = value;
- System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => _callback.Invoke(Result));
- }
- }
- public UrlConnection(string url, Action<string> callbackResult)
- {
- _url = url;
- _callback = callbackResult;
- //_request = HttpWebRequest.Create(url);
- }
- public void Post (string message)
- {
- _message = message;
- //_responseCallback = responseCallback;
- HttpWebRequest request = (HttpWebRequest) WebRequest.Create(_url);
- request.Method = "POST";
- request.ContentType = "application/x-www-form-urlencoded";
- request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), request);
- }
- public void Get ()
- {
- HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(_url);
- Request.Method = "GET";
- Request.BeginGetResponse(
- new AsyncCallback(
- (IAsyncResult asynchronousResult) =>
- {
- HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
- HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
- Stream streamResponse = response.GetResponseStream();
- StreamReader streamRead = new StreamReader(streamResponse);
- Result = streamRead.ReadToEnd();
- }),
- Request);
- }
- /*public void Ping(string message)
- {
- HttpWebRequest request = (HttpWebRequest) WebRequest.Create(_url);
- request.Method = "GET";
- request.BeginGetResponse(new AsyncCallback(PingCallback), request);
- }
- //callback for GET response
- private void PingCallback (IAsyncResult asynchronousResult)
- {
- }*/
- //callback for sending request
- private void GetRequestStreamCallback (IAsyncResult asynchronousResult)
- {
- HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
- Stream postStream = request.EndGetRequestStream(asynchronousResult);
- byte[] message =
- Encoding.UTF8.GetBytes(
- "XMLRequest=" + HttpUtility.UrlEncode(_message));
- postStream.Write(message, 0, message.Length);
- postStream.Close();
- request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
- }
- //callback for getting response
- private void GetResponseCallback(IAsyncResult asynchronousResult)
- {
- HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
- HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
- Stream streamResponse = response.GetResponseStream();
- StreamReader streamRead = new StreamReader(streamResponse);
- Result = streamRead.ReadToEnd();
- //_mainPage.DrawInfo(Result);
- //_responseCallback(Result);
- streamResponse.Close();
- streamRead.Close();
- response.Close();
- }
- }
- }
Add Comment
Please, Sign In to add comment