Beispiel #1
0
 public IAsyncOperation <TData> GetAsync <TData>(Uri uri, TData obj)
     where TData : class
 {
     refineUri(ref uri);
     return(Run(async token =>
     {
         var resT = this.HttpClient.GetAsync(uri);
         token.Register(resT.Cancel);
         var resp = await resT;
         var str = await resp.Content.ReadAsStringAsync();
         try
         {
             var file = await DownloadsFolder.CreateFileAsync(uri.PathAndQuery.Replace('/', '.'), CreationCollisionOption.FailIfExists);
             await FileIO.WriteTextAsync(file, str);
         }
         catch (Exception)
         {
         }
         var res = new Response <TData>(obj);
         JsonConvert.PopulateObject(str, res, jsonSettings);
         if (!res.Success)
         {
             throw AnitamaServerException.Create(res);
         }
         return obj;
     }));
 }
Beispiel #2
0
 public IAsyncOperation <TData> PostAsync <TData>(Uri uri, IHttpContent content)
 {
     refineUri(ref uri);
     return(Run(async token =>
     {
         var resT = this.HttpClient.PostAsync(uri, content);
         token.Register(resT.Cancel);
         var resp = await resT;
         var str = await resp.Content.ReadAsStringAsync();
         var res = JsonConvert.DeserializeObject <Response <TData> >(str, jsonSettings);
         if (!res.Success)
         {
             throw AnitamaServerException.Create(res);
         }
         return res.Data;
     }));
 }
Beispiel #3
0
 public IAsyncOperation <TData> PostAsync <TData>(Uri uri, IHttpContent content, TData obj)
     where TData : class
 {
     refineUri(ref uri);
     return(Run(async token =>
     {
         var resT = this.HttpClient.PostAsync(uri, content);
         token.Register(resT.Cancel);
         var resp = await resT;
         var str = await resp.Content.ReadAsStringAsync();
         var res = new Response <TData>(obj);
         JsonConvert.PopulateObject(str, res, jsonSettings);
         if (!res.Success)
         {
             throw AnitamaServerException.Create(res);
         }
         return obj;
     }));
 }