Example #1
0
        /// <summary>
        /// 以Get方式获取数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="jsonSerializer">json序列化</param>
        /// <param name="url">请求url</param>
        /// <param name="requestPara">请求参数集合.</param>
        /// <param name="headerParams">放在header参数.</param>
        /// <param name="timeout">过期时间,以毫秒为单位</param>
        /// <returns></returns>
        public virtual T Get <T>(IJsonSerializer jsonSerializer, UrlConcat url, IDictionary <string, string> requestPara, IDictionary <string, string> headerParams, int timeout = 30000)
        {
            var txt = new HttpRequestDownloader().GetString(url.ToString(), requestPara, headerParams, "application/json", timeout);

            if (txt.IsNullOrEmpty())
            {
                return(default(T));
            }

            return(jsonSerializer.Deserialize <T>(txt));
        }
Example #2
0
        /// <summary>
        /// 以Post方式获取数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="jsonSerializer">json序列化</param>
        /// <param name="url">参数请求</param>
        /// <param name="jsonDate">json请求内容</param>
        /// <param name="headerParams">放在header参数.</param>
        /// <param name="timeout">过期时间,以毫秒为单位</param>
        /// <returns></returns>
        public virtual T Post <T>(IJsonSerializer jsonSerializer, UrlConcat url, string jsonDate, IDictionary <string, string> headerParams, int timeout = 30000)
        {
            var txt = new HttpRequestDownloader().JPostString(url.ToString(), jsonDate, headerParams, timeout);

            if (txt.IsNullOrEmpty())
            {
                return(default(T));
            }

            return(jsonSerializer.Deserialize <T>(txt));
        }
Example #3
0
        protected void Change(object state)
        {
            System.Threading.Interlocked.Exchange(ref this.collection, this.Load(false));
            if (this.collection.Count == 0)
            {
                return;
            }

            for (var i = 0; i < this.collection.Count; i++)
            {
                var    item = this.collection.ElementAt(i);
                string txt  = string.Empty;
                try
                {
                    if (item.A10Url.IsNullOrEmpty())
                    {
                        //表示当前不可用
                        item.ReportText = string.Empty;
                        item.ReportTime = DateTime.Now;
                    }
                    else
                    {
                        txt             = new HttpRequestDownloader().GetString(item.A10Url);
                        item.ReportText = txt;
                        item.ReportTime = DateTime.Now;
                    }
                }
                catch
                {
                    //表示当前不可用
                    item.ReportText = string.Empty;
                    item.ReportTime = DateTime.Now;
                }
            }

            /*认为没有完成,2分钟后继续*/
            return;
        }
Example #4
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="uri">Url请求地址</param>
 /// <returns></returns>
 public static byte[] JGet(this HttpRequestDownloader downloader, Uri uri)
 {
     return(JGet(downloader, uri, null));
 }
Example #5
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="uri">Url请求地址</param>
 /// <param name="jsonData">请求json参数</param>
 /// <param name="headerParams">标头的值</param>
 /// <param name="contentType"> 标头的值</param>
 /// <param name="timeout">请求时间,以毫秒为单位,为0的则表示使用默认,默认值是 100,000 毫秒(100 秒)</param>
 /// <returns></returns>
 public static string JPostString(this HttpRequestDownloader downloader, Uri uri, Stream jsonData, IDictionary <string, string> headerParams, string contentType = "application/json", int timeout = -1)
 {
     return(downloader.PostString(uri, jsonData == null ? new MemoryStream(downloader.Encoding.GetBytes("{}")) : jsonData, headerParams, string.IsNullOrWhiteSpace(contentType) ? "application/json" : contentType, timeout));
 }
Example #6
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="url">Url请求地址</param>
 /// <param name="getParams">请求参数</param>
 /// <param name="headerParams">标头的值</param>
 /// <param name="contentType">内容类型</param>
 /// <param name="timeout">请求时间,以毫秒为单位,为0的则表示使用默认,默认值是 100,000 毫秒(100 秒)</param>
 /// <returns></returns>
 public static byte[] JGet(this HttpRequestDownloader downloader, string url, IDictionary <string, string> getParams, IDictionary <string, string> headerParams, string contentType = "application/json", int timeout = -1)
 {
     return(downloader.Get(url, getParams, headerParams, contentType, timeout, out var httpStatus));
 }
Example #7
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="uri">Url请求地址</param>
 /// <param name="jsonData">请求json参数</param>
 /// <returns></returns>
 public static string JPostString(this HttpRequestDownloader downloader, Uri uri, Stream jsonData)
 {
     return(JPostString(downloader, uri, jsonData, null));
 }
Example #8
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="uri">Url请求地址</param>
 /// <param name="jsonData">请求json参数</param>
 /// <param name="headerParams">标头的值</param>
 /// <param name="timeout">请求时间,以毫秒为单位,为0的则表示使用默认,默认值是 100,000 毫秒(100 秒)</param>
 /// <returns></returns>
 public static string JPostString(this HttpRequestDownloader downloader, Uri uri, Stream jsonData, IDictionary <string, string> headerParams, int timeout)
 {
     return(JPostString(downloader, uri, jsonData, headerParams, string.Empty, timeout));
 }
Example #9
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="uri">Url请求地址</param>
 /// <param name="headerParams">标头的值</param>
 /// <param name="contentType">标头的值</param>
 /// <param name="timeout">请求时间,以毫秒为单位,为0的则表示使用默认,默认值是 100,000 毫秒(100 秒)</param>
 /// <returns></returns>
 public static string JGetString(this HttpRequestDownloader downloader, Uri uri, IDictionary <string, string> headerParams, string contentType = "application/json", int timeout = -1)
 {
     return(downloader.GetString(uri, headerParams, contentType, timeout, out var httpStatus));
 }
Example #10
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="url">Url请求地址</param>
 /// <param name="jsonData">请求json参数</param>
 /// <param name="headerParams">标头的值</param>
 /// <param name="contentType"> 标头的值</param>
 /// <param name="timeout">请求时间,以毫秒为单位,为0的则表示使用默认,默认值是 100,000 毫秒(100 秒)</param>
 /// <returns></returns>
 public static string JPostString(this HttpRequestDownloader downloader, string url, Stream jsonData, IDictionary <string, string> headerParams, string contentType = "application/json", int timeout = -1)
 {
     return(JPostString(downloader, new Uri(url), jsonData, headerParams, contentType, timeout));
 }
Example #11
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="url">Url请求地址</param>
 /// <param name="getParams">请求参数</param>
 /// <param name="headerParams">标头的值</param>
 /// <returns></returns>
 public static string JGetString(this HttpRequestDownloader downloader, string url, IDictionary <string, string> getParams, IDictionary <string, string> headerParams)
 {
     return(JGetString(downloader, url, getParams, headerParams, "application/json", -1));
 }
Example #12
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="url">Url请求地址</param>
 /// <returns></returns>
 public static string JGetString(this HttpRequestDownloader downloader, string url)
 {
     return(JGetString(downloader, url, null));
 }
Example #13
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="url">Url请求地址</param>
 /// <param name="getParams">请求参数</param>
 /// <returns></returns>
 public static byte[] JGet(this HttpRequestDownloader downloader, string url, IDictionary <string, string> getParams)
 {
     return(JGet(downloader, url, getParams, null));
 }
Example #14
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="url">Url请求地址</param>
 /// <param name="jsonData">请求json参数</param>
 /// <returns></returns>
 public static string JPostString(this HttpRequestDownloader downloader, string url, string jsonData)
 {
     return(JPostString(downloader, url, jsonData, null));
 }
Example #15
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="uri">Url请求地址</param>
 /// <param name="jsonData">请求json参数</param>
 /// <param name="headerParams">标头的值</param>
 /// <returns></returns>
 public static byte[] JPost(this HttpRequestDownloader downloader, Uri uri, Stream jsonData, IDictionary <string, string> headerParams)
 {
     return(JPost(downloader, uri, jsonData, headerParams, -1));
 }
Example #16
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="uri">Url请求地址</param>
 /// <param name="jsonData">请求json参数</param>
 /// <returns></returns>
 public static byte[] JPost(this HttpRequestDownloader downloader, Uri uri, Stream jsonData)
 {
     return(JPost(downloader, uri, jsonData, null));
 }
Example #17
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="url">Url请求地址</param>
 /// <returns></returns>
 public static byte[] JGet(this HttpRequestDownloader downloader, string url)
 {
     return(JGet(downloader, url, null));
 }
Example #18
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="uri">Url请求地址</param>
 /// <param name="headerParams">标头的值</param>
 /// <returns></returns>
 public static byte[] JGet(this HttpRequestDownloader downloader, Uri uri, IDictionary <string, string> headerParams)
 {
     return(JGet(downloader, uri, headerParams, "application/json", -1));
 }
Example #19
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="url">Url请求地址</param>
 /// <param name="jsonData">请求json参数</param>
 /// <param name="headerParams">标头的值</param>
 /// <returns></returns>
 public static string JPostString(this HttpRequestDownloader downloader, string url, Stream jsonData, IDictionary <string, string> headerParams)
 {
     return(JPostString(downloader, url, jsonData, headerParams, -1));
 }
Example #20
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="url">Url请求地址</param>
 /// <param name="jsonData">请求json参数</param>
 /// <param name="headerParams">标头的值</param>
 /// <param name="timeout">请求时间,以毫秒为单位,为0的则表示使用默认,默认值是 100,000 毫秒(100 秒)</param>
 /// <returns></returns>
 public static string JPostString(this HttpRequestDownloader downloader, string url, string jsonData, IDictionary <string, string> headerParams, int timeout)
 {
     return(JPostString(downloader, new Uri(url), jsonData, headerParams, timeout));
 }
Example #21
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="uri">Url请求地址</param>
 /// <returns></returns>
 public static string JGetString(this HttpRequestDownloader downloader, Uri uri)
 {
     return(JGetString(downloader, uri, null));
 }
Example #22
0
 /// <summary>
 /// 从Url地址中下载数据
 /// </summary>
 /// <param name="downloader">下載器</param>
 /// <param name="uri">Url请求地址</param>
 /// <param name="jsonData">请求json参数</param>
 /// <param name="headerParams">标头的值</param>
 /// <param name="contentType"> 标头的值</param>
 /// <param name="timeout">请求时间,以毫秒为单位,为0的则表示使用默认,默认值是 100,000 毫秒(100 秒)</param>
 /// <returns></returns>
 public static string JPostString(this HttpRequestDownloader downloader, Uri uri, string jsonData, IDictionary <string, string> headerParams, string contentType = "application/json", int timeout = -1)
 {
     return(JPostString(downloader, uri, new MemoryStream(downloader.Encoding.GetBytes(jsonData ?? "{}")), headerParams, contentType, timeout));
 }
Example #23
0
            public Task InvokeAsync(HttpContext context, RequestDelegate next)
            {
                if (!context.Request.Path.HasValue)
                {
                    return(next(context));
                }

                if (!context.Request.Method.Equals("post", System.StringComparison.OrdinalIgnoreCase))
                {
                    return(next(context));
                }

                var segments = context.Request.Path.Value.ToLower().Split('/', System.StringSplitOptions.RemoveEmptyEntries);

                if (segments != null && segments.Length == 3 && segments[0] == "api")
                {
                    //拿api地址
                    var host = new HostString(this.proxyRouteDispatcher.GetCurrentUrlHost((context.Request.ContentLength.HasValue ? context.Request.ContentLength.Value : segments[1].GetHashCode()).ToString()));
                    var url  = UriHelper.BuildAbsolute("http", host, context.Request.PathBase, context.Request.Path, context.Request.QueryString, default(FragmentString));

                    var token = this.authenticationService.GetToken(context);
                    IContentEncryptor enctryptor = new TripleDESContentEncryptor(token.CryptToken);
                    var header = this.ConvertHeaders(context, token);
                    //using (var body = this.ConvertContentFromBodyString(context, enctryptor))
                    using (var body = this.ConvertContentFromBodyByteArray(context, enctryptor))
                    {
                        //注册与登陆,由于在这里做identity servie
                        switch (segments[2])
                        {
                        //注册
                        case "Register":
                        //登陆
                        case "Login":
                        {
                            var loginTask    = new HttpRequestDownloader().PostString(new Uri(url), body, header, "application/json", 0);
                            var loginContent = loginTask;
                            var target       = EasyJsonSerializer.Deserialize <Never.Web.WebApi.Controllers.BasicController.ResponseResult <UserIdToken> >(loginContent);
                            if (target != null && target.Code == "0000" && target.Data.UserId > 0)
                            {
                                var token2    = this.authenticationService.SignIn(context, target.Data.UserId).GetAwaiter().GetResult();
                                var appresult = new Never.Web.WebApi.Controllers.BasicController.ResponseResult <AppToken>(target.Code, new AppToken {
                                        @accesstoken = token2.AccessToken
                                    }, target.Message);
                                return(this.ConvertContentToBody(context, EasyJsonSerializer.Serialize(appresult), enctryptor));
                            }

                            var appresult2 = new Never.Web.WebApi.Controllers.BasicController.ResponseResult <AppToken>(target.Code, new AppToken {
                                    @accesstoken = string.Empty
                                }, target.Message);
                            return(this.ConvertContentToBody(context, EasyJsonSerializer.Serialize(appresult2), enctryptor));
                        }

                        //退出
                        case "Logout":
                        {
                            new HttpRequestDownloader().PostString(new Uri(url), body, header, "application/json", 0);
                            this.authenticationService.SignOut(context, token);
                            var appresult = new Never.Web.WebApi.Controllers.BasicController.ResponseResult <AppToken>("0000", new AppToken {
                                    @accesstoken = string.Empty
                                }, string.Empty);
                            return(this.ConvertContentToBody(context, EasyJsonSerializer.Serialize(appresult), enctryptor));
                        }
                        }

                        if (header.ContainsKey("userid"))
                        {
                            url = string.Concat(url, "?userid=", header["userid"]);
                        }

                        var task = new HttpRequestDownloader().Post(new Uri(url), body, header, "application/json", 0);
                        return(this.ConvertContentToBody(context, task, enctryptor));
                        //    var logger = Never.IoC.ContainerContext.Current.ServiceLocator.Resolve<ILoggerBuilder>().Build(typeof(Startup));
                        //    var action = new Action<string>((x) =>
                        //    {
                        //        logger.Warn(url + ":" + x);
                        //    });

                        //    using (var method = new Never.Utils.MethodTickCount(action))
                        //    {
                        //        var task = new HttpRequestDownloader().PostString(new Uri(url), body, header, "application/json");
                        //        var content = task;// task.GetAwaiter().GetResult();
                        //        return context.Response.WriteAsync(this.ConvertResult(content, token));
                        //    }
                    }
                }

                return(next(context));
            }