分享

C# HttpClient发送请求获取接口数据

 昵称71011036 2020-08-10
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);
        }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多