using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Carton.Client.Unity;
using System.Web;
using System.Net;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Carton.Client.Service
{
public interface IClientHttp
{
Task<string> POST(string apirout, string parameterjson);
Task<string> GET(string apirout, Dictionary<string,string> parameters);
}
public class ClientHttpService :IClientHttp
{
private System.Net.Http.HttpClient _client = null;
public ClientHttpService(System.Net.Http.HttpClient client)
{
_client = client;
_client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
}
public Task<string> GET(string apiroute, Dictionary<string,string> parameters)
{
if (Unity.GlobalModule.AuthStorage != null)
{
_client.DefaultRequestHeaders.Add("token", Unity.GlobalModule.AuthStorage.Token);
}
string baseurl = System.Configuration.ConfigurationManager.AppSettings["apiurl"];
foreach(var para in parameters)
{
apiroute = apiroute.Replace("{"+para.Key+"}",para.Value);
}
var getresult =_client.GetStringAsync(baseurl + apiroute);
var r = getresult.Result;
return getresult;
}
public Task<string> POST(string apiroute, string parameterjson)
{
if (Unity.GlobalModule.AuthStorage != null)
{
_client.DefaultRequestHeaders.Add("token", Unity.GlobalModule.AuthStorage.Token);
}
string baseurl = System.Configuration.ConfigurationManager.AppSettings["apiurl"];
string parastr = string.Empty;
System.Net.Http.StringContent content = new System.Net.Http.StringContent(parameterjson);
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
var postresult = _client.PostAsync(baseurl + apiroute , content);
var msgbody = postresult.Result.Content.ReadAsStringAsync();
return msgbody;
}
}
}
public class Auth_UserService : IBll.Sys.IAuth_User
{
private IClientHttp _client = null;
public Auth_UserService(IClientHttp client)
{
_client = client;
}
/// <summary>
/// 添加用戶
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public OResult<bool> Add(UserNew user)
{
var parajson = JsonConvert.SerializeObject(user);
var result = _client.POST(Core.APIRoute.auth_addnew, parajson);
return JsonConvert.DeserializeObject<OResult<bool>>(result.Result);
}
}
|