Guest User

Untitled

a guest
Jan 22nd, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.29 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Net;
  4. using System.Text;
  5. using System.Threading;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Documents;
  9. using System.Windows.Ink;
  10. using System.Windows.Input;
  11. using System.Windows.Media;
  12. using System.Windows.Media.Animation;
  13. using System.Windows.Shapes;
  14. using System.Windows.Threading;
  15.  
  16. namespace Wasabi.Backend
  17. {
  18.     /*public class UrlConnection : UrlConnection<String>
  19.     {
  20.         public UrlConnection(string url, Action<String> callbackResult)
  21.         {
  22.             this = (UrlConnection)new UrlConnection<String>(url, callbackResult);
  23.         }
  24.     }*/
  25.  
  26.     public class UrlConnection
  27.     {
  28.         private readonly string _url;
  29.         private string _message;
  30.         private string _result;
  31.  
  32.         //public delegate void Update(string s);
  33.         private Action<string> _callback;
  34.  
  35.         //private MainPage _mainPage;
  36.  
  37.         public string Result
  38.         {
  39.             get { return _result; }
  40.            
  41.             private set
  42.             {
  43.                 _result = value;
  44.                 System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => _callback.Invoke(Result));
  45.             }
  46.         }
  47.  
  48.         public UrlConnection(string url, Action<string> callbackResult)
  49.         {
  50.             _url = url;
  51.             _callback = callbackResult;
  52.             //_request = HttpWebRequest.Create(url);
  53.         }
  54.  
  55.         public void Post (string message)
  56.         {
  57.             _message = message;
  58.             //_responseCallback = responseCallback;
  59.  
  60.             HttpWebRequest request = (HttpWebRequest) WebRequest.Create(_url);
  61.  
  62.             request.Method = "POST";
  63.             request.ContentType = "application/x-www-form-urlencoded";
  64.  
  65.             request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), request);
  66.         }
  67.  
  68.         public void Get ()
  69.         {
  70.             HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(_url);
  71.  
  72.             Request.Method = "GET";
  73.             Request.BeginGetResponse(
  74.                 new AsyncCallback(
  75.                     (IAsyncResult asynchronousResult) =>
  76.                         {
  77.                             HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
  78.  
  79.                             HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
  80.                             Stream streamResponse = response.GetResponseStream();
  81.                             StreamReader streamRead = new StreamReader(streamResponse);
  82.                            
  83.                             Result = streamRead.ReadToEnd();
  84.                         }),
  85.                 Request);
  86.         }
  87.  
  88.         /*public void Ping(string message)
  89.         {
  90.             HttpWebRequest request = (HttpWebRequest) WebRequest.Create(_url);
  91.  
  92.             request.Method = "GET";
  93.  
  94.             request.BeginGetResponse(new AsyncCallback(PingCallback), request);
  95.         }
  96.  
  97.         //callback for GET response
  98.         private void PingCallback (IAsyncResult asynchronousResult)
  99.         {
  100.  
  101.         }*/
  102.  
  103.         //callback for sending request
  104.         private void GetRequestStreamCallback (IAsyncResult asynchronousResult)
  105.         {
  106.             HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
  107.  
  108.             Stream postStream = request.EndGetRequestStream(asynchronousResult);
  109.             byte[] message =
  110.                 Encoding.UTF8.GetBytes(
  111.                     "XMLRequest=" + HttpUtility.UrlEncode(_message));
  112.  
  113.             postStream.Write(message, 0, message.Length);
  114.             postStream.Close();
  115.  
  116.             request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
  117.         }
  118.  
  119.         //callback for getting response
  120.         private void GetResponseCallback(IAsyncResult asynchronousResult)
  121.         {
  122.             HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
  123.  
  124.             HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
  125.             Stream streamResponse = response.GetResponseStream();
  126.             StreamReader streamRead = new StreamReader(streamResponse);
  127.  
  128.             Result = streamRead.ReadToEnd();
  129.  
  130.             //_mainPage.DrawInfo(Result);
  131.             //_responseCallback(Result);
  132.  
  133.             streamResponse.Close();
  134.             streamRead.Close();
  135.             response.Close();
  136.         }
  137.     }
  138. }
Add Comment
Please, Sign In to add comment