EgonMilanVotrubec

Unity/Assets/Scripts/ReadPlayer.cs

Nov 28th, 2018
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.21 KB | None | 0 0
  1. using System;
  2. using System.Text;
  3. using System.Net.Http;
  4. using System.Threading.Tasks;
  5. using Newtonsoft.Json;
  6.  
  7. using UnityEngine;
  8.  
  9. using Server.Models;
  10.  
  11. public class ReadPlayer : MonoBehaviour
  12. {
  13.     private HttpClient client = new HttpClient ( );
  14.     private Uri BaseUri;
  15.  
  16.     public string Username = "user";
  17.     public string Password = "pass";
  18.     public string Server = "http://localhost:53253";
  19.  
  20.     public Player Player { get; private set; } = null;
  21.  
  22.     // Start is called before the first frame update
  23.     async void Start ()
  24.     {
  25.         BaseUri = new Uri ( Server );
  26.         var success = await ReadPlayerFromServerAsync ( Username, Password );
  27.         if ( success )
  28.             Debug.Log ( "Successfully Read From Server." );
  29.         else
  30.             Debug.Log ( "Failed To Read From Server!" );
  31.     }
  32.  
  33.  
  34.  
  35.  
  36.     private async Task<bool> ReadPlayerFromServerAsync ( string username, string password )
  37.     {
  38.         Uri uri = new Uri ( BaseUri, "player/get" );
  39.  
  40.         var body = JsonConvert.SerializeObject (
  41.             new UsernamePassword
  42.             {
  43.                 Username = username,
  44.                 Password = password
  45.             } );
  46.  
  47.         var content = new StringContent ( body, Encoding.UTF8, "application/json" );
  48.         content.Headers.ContentType.CharSet = null;
  49.  
  50.         try
  51.         {
  52.             var s = client.PostAsync ( uri.AbsoluteUri, content );
  53.             var result = await s;
  54.             var responseBody = await result.Content.ReadAsStringAsync ( );
  55.  
  56.             Debug.Log ( $"ReadPlayerFromServerAsync<T> " +
  57.                 $"result.StatusCode : {result.StatusCode}" +
  58.                 $"{responseBody}" );
  59.  
  60.             if ( !result.IsSuccessStatusCode ) return false;
  61.             if ( string.IsNullOrEmpty ( responseBody ) ) return false;
  62.  
  63.             Player = JsonConvert.DeserializeObject<Player> ( responseBody );
  64.             return true;
  65.         }
  66.         catch ( HttpRequestException re )
  67.         {
  68.             Debug.Log ( $"HttpRequestException : {re.Message}" );
  69.             return false;
  70.         }
  71.         catch ( Exception e )
  72.         {
  73.             Debug.Log ( $"Exception : {e.Message}" );
  74.             return false;
  75.         }
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment