Ejemplo n.º 1
0
        public T Requset <T>(RequsetMethod method, string url, object data, List <HttpHeader> headers, bool noToken) where T : class, new()
        {
            Encoding encoding = Encoding.UTF8;

            // 如果直接精确到地址不用加服务器基础地址
            if (url.ToLower().Contains("https://") || url.Contains("http://"))
            {
            }
            else
            {
                url = BaseUrl + url;
            }

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.Method = method.ToString();

            // 添加token
            if (!noToken)
            {
                request.Headers.Add("Authorization", "Bearer " + Token.AccessToken);
            }

            // 添加自定义头
            if (headers != null && headers.Count > 0)
            {
                foreach (var header in headers)
                {
                    request.Headers.Add(header.Key, header.Value);
                }
            }

            // 统一这一种格式数据
            request.ContentType = "application/json;charset=utf-8";

            // 有数据正文,发送数据正文
            if (data != null)
            {
                var    jsonData = Common.SerializeJSON(data);
                byte[] requsetData;
                requsetData           = Encoding.UTF8.GetBytes(jsonData);
                request.ContentLength = requsetData.Length;

                using (Stream reStream = request.GetRequestStream())
                {
                    reStream.Write(requsetData, 0, requsetData.Length);
                }
            }


            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                {
                    var resSrt = reader.ReadToEnd();

                    return(Common.DeserializeJSON <T>(resSrt));
                }
            }
        }
Ejemplo n.º 2
0
 public static ReresultDto <T> RequsetAbp <T>(RequsetMethod method, string url, object data, List <HttpHeader> headers, bool noToken) where T : class, new()
 {
     return(Requset <ReresultDto <T> >(method, url, data, headers, noToken));
 }
Ejemplo n.º 3
0
        public static void RequsetAsync <T>(RequsetMethod method, string url, object data, List <HttpHeader> headers, bool noToken, Action <T> onResponse) where T : class, new()
        {
            try
            {
                Encoding encoding = Encoding.UTF8;

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(BaseUrl + url);

                // 如果直接精确到地址不用加服务器基础地址
                if (url.ToLower().Contains("https://") || url.Contains("http://"))
                {
                    request = (HttpWebRequest)WebRequest.Create(url);
                }

                request.Method = method.ToString();

                // 添加token
                if (!noToken)
                {
                    request.Headers.Add("Authorization", "Bearer " + Token.AccessToken);
                }

                // 添加自定义头
                if (headers != null && headers.Count > 0)
                {
                    foreach (var header in headers)
                    {
                        request.Headers.Add(header.Key, header.Value);
                    }
                }

                // 统一这一种格式数据
                request.ContentType = "application/json;charset=utf-8";



                request.BeginGetRequestStream(new AsyncCallback((result) =>
                {
                    HttpWebRequest req = (HttpWebRequest)result.AsyncState;

                    // 有数据正文,发送数据正文
                    if (data != null)
                    {
                        var jsonData      = Common.SerializeJSON(data);
                        Stream postStream = req.EndGetRequestStream(result);
                        byte[] requsetData;
                        requsetData = Encoding.UTF8.GetBytes(jsonData);
                        postStream.Write(requsetData, 0, requsetData.Length);
                        postStream.Close();
                    }

                    req.BeginGetResponse(new AsyncCallback(responseResult =>
                    {
                        HttpWebRequest req1 = (HttpWebRequest)responseResult.AsyncState;

                        if (responseResult.IsCompleted)
                        {
                            var webResponse = req1.EndGetResponse(responseResult);
                            using (var stream = webResponse.GetResponseStream())
                            {
                                using (var read = new StreamReader(stream))
                                {
                                    if (onResponse != null)
                                    {
                                        onResponse.Invoke(Common.DeserializeJSON <T>(read.ReadToEnd()));
                                    }
                                }
                            }
                        }
                    }), req);
                }), request);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 4
0
 public static void RequsetAbpAsync <T>(RequsetMethod method, string url, object data, List <HttpHeader> headers, bool noToken, Action <ReresultDto <T> > onResponse) where T : class, new()
 {
     RequsetAsync <ReresultDto <T> >(method, url, data, headers, noToken, onResponse);
 }