/// <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)); }
/// <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)); }
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; }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
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)); }