コード例 #1
0
        /// <summary>
        /// Get
        /// </summary>
        /// <param name="requestUri"></param>
        /// <param name="json"></param>
        /// <returns></returns>
        public static IRestResponse PostComplexData(string requestUri, RestRequest request, int time = 7000)
        {
            if (time == 0 || time > timeout)
            {
                time = timeout;
            }
            request.Timeout = time;
            try
            {
                ThreadLocalData entity = (ThreadLocalData)ThreadSlot.LogicalGetData().Clone();
                if (entity != null)
                {
                    string clientID = ThreadSlot.GetClientID();//System.Configuration.ConfigurationSettings.AppSettings["ClientID"];
                    if (!string.IsNullOrEmpty(clientID))
                    {
                        if (clientID.Split('|')[1] == "1")//终端(后台)
                        {
                            entity.TraceSecondId = clientID.Split('|')[0];
                            entity.TraceId       = Guid.NewGuid().ToString("N");
                        }
                    }
                    request.AddHeader("BTProcessInfo", JsonHelper.SerializeObject(entity));
                }
            }
            catch (Exception ex)
            {
                LogService.Default.Fatal(ex, "post请求添加追踪日志异常:" + ex.Message + ex.StackTrace);
            }
            var restClient = new RestClient {
                BaseUrl = new Uri(requestUri)
            };
            IRestResponse r = restClient.Execute(request);

            return(r);
        }
コード例 #2
0
        /// <summary>
        /// GET接口方法
        /// </summary>
        /// <param name="requestUri"></param>
        /// <param name="time"></param>
        /// <returns></returns>
        public static string GetHttpRequest(string requestUri, Int32 time = 7000)
        {
            try
            {
                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(requestUri);

                myRequest.UseDefaultCredentials = true;
                myRequest.ContentType           = "application/json; charset=utf-8";
                myRequest.Accept = "application/json";
                myRequest.Method = "GET";
                if (time == 0 || time > timeout)
                {
                    time = timeout;
                }
                myRequest.Timeout = time;

                //线程信息传递
                //BaseThreadEntity entity = BaseThread.GetTraceInfo();
                //if (entity.TraceId != null && entity.TraceId != "")
                //    myRequest.Headers.Add("MyProcessInfo", JsonHelper.ObjectToJson(entity));

                try
                {
                    ThreadLocalData entity = (ThreadLocalData)ThreadSlot.LogicalGetData().Clone();
                    if (entity != null)
                    {
                        string clientID = ThreadSlot.GetClientID();//System.Configuration.ConfigurationSettings.AppSettings["ClientID"];
                        if (!string.IsNullOrEmpty(clientID))
                        {
                            if (clientID.Split('|')[1] == "1")//终端(后台)
                            {
                                entity.TraceSecondId = clientID.Split('|')[0];
                                entity.TraceId       = Guid.NewGuid().ToString("N");
                            }
                        }
                        myRequest.Headers.Add("BTProcessInfo", JsonHelper.SerializeObject(entity));
                    }
                }
                catch (Exception ex)
                {
                    LogService.Default.Fatal(ex, "post请求添加追踪日志异常:" + ex.Message + ex.StackTrace);
                }

                string          ReqResult  = string.Empty;
                HttpWebResponse myResponse = null;
                myResponse = (HttpWebResponse)myRequest.GetResponse();
                StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
                ReqResult = reader.ReadToEnd();
                reader.Close();
                myResponse.Close();
                return(ReqResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #3
0
        /// <summary>
        /// Post
        /// </summary>
        /// <param name="requestUri"></param>
        /// <param name="json"></param>
        /// <returns></returns>
        public static IRestResponse PostComplexData(string requestUri, RestRequest request, string medieaURI = "",
                                                    string fileName = "", string jsonBody = "", Int32 time = 7000, string version = "1.0")
        {
            request.Method = Method.POST;
            if (time == 0 || time > timeout)
            {
                time = timeout;
            }
            request.Timeout = time;
            try
            {
                ThreadLocalData entity = (ThreadLocalData)ThreadSlot.LogicalGetData().Clone();
                if (entity != null)
                {
                    string clientID = ThreadSlot.GetClientID();//System.Configuration.ConfigurationSettings.AppSettings["ClientID"];
                    if (!string.IsNullOrEmpty(clientID))
                    {
                        if (clientID.Split('|')[1] == "1")//终端(后台)
                        {
                            entity.TraceSecondId = clientID.Split('|')[0];
                            entity.TraceId       = Guid.NewGuid().ToString("N");
                        }
                    }
                    request.AddHeader("BTProcessInfo", JsonHelper.SerializeObject(entity));
                }
            }
            catch (Exception ex)
            {
                LogService.Default.Fatal(ex, "post请求添加追踪日志异常:" + ex.Message + ex.StackTrace);
            }

            if (!string.IsNullOrEmpty(medieaURI))
            {
                byte[] bufferBest = GetImage(medieaURI);
                if (string.IsNullOrEmpty(fileName))
                {
                    fileName = new Guid().ToString("N");
                }

                request.AddFileBytes(fileName, bufferBest, fileName);
            }
            if (!string.IsNullOrEmpty(jsonBody))
            {
                request.AddBody(jsonBody);
            }

            request.Timeout = time;
            var restClient = new RestClient {
                BaseUrl = new Uri(requestUri)
            };
            IRestResponse r = restClient.Execute(request);

            return(r);
        }
コード例 #4
0
        /// <summary>
        /// Post接口方法
        /// </summary>
        /// <param name="requestUri"></param>
        /// <param name="json"></param>
        /// <returns></returns>
        public static string GetHttpRequest(string requestUri, string json, Int32 time = 7000, string version = "1.0")
        {
            //json格式请求数据
            if (time == 0 || time > timeout)
            {
                time = timeout;
            }

            string         requestData = json;
            HttpWebRequest myRequest   = (HttpWebRequest)WebRequest.Create(requestUri);

            //utf-8编码
            byte[] buf = System.Text.Encoding.GetEncoding("utf-8").GetBytes(requestData);

            //post请求
            myRequest.Method        = "GET";
            myRequest.ContentLength = buf.Length;

            myRequest.MaximumAutomaticRedirections = 1;
            myRequest.Headers.Add("Api-Version", version);
            myRequest.AllowAutoRedirect = true;
            myRequest.Timeout           = time;

            myRequest.ContentType = "application/json; charset=utf-8";
            myRequest.Accept      = "application/json";



            //线程信息传递
            //BaseThreadEntity entity = BaseThread.GetTraceInfo();
            //if (entity.TraceId != null && entity.TraceId != "")
            //    myRequest.Headers.Add("MyProcessInfo", JsonHelper.ObjectToJson(entity));

            try
            {
                ThreadLocalData entity = (ThreadLocalData)ThreadSlot.LogicalGetData().Clone();
                if (entity != null)
                {
                    string clientID = ThreadSlot.GetClientID();//System.Configuration.ConfigurationSettings.AppSettings["ClientID"];
                    if (!string.IsNullOrEmpty(clientID))
                    {
                        if (clientID.Split('|')[1] == "1")//终端(后台)
                        {
                            entity.TraceSecondId = clientID.Split('|')[0];
                            entity.TraceId       = Guid.NewGuid().ToString("N");
                        }
                    }

                    myRequest.Headers.Add("BTProcessInfo", JsonHelper.SerializeObject(entity));
                }
            }
            catch (Exception ex)
            {
                LogService.Default.Fatal(ex, "post请求添加追踪日志异常:" + ex.Message + ex.StackTrace);
            }

            string          ReqResult  = string.Empty;
            HttpWebResponse myResponse = null;
            StreamReader    reader     = null;

            try
            {
                myResponse = (HttpWebResponse)myRequest.GetResponse();
                reader     = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
                ReqResult  = reader.ReadToEnd();

                reader.Close();
                myResponse.Close();
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
                if (myResponse != null)
                {
                    myResponse.Close();
                }
            }

            return(ReqResult);
        }