http 请求封装
This commit is contained in:
parent
c0036c4b98
commit
81f68f3a1a
|
|
@ -19,6 +19,21 @@
|
||||||
<param name="seconds">缓存时间秒,0=int.max ,</param>
|
<param name="seconds">缓存时间秒,0=int.max ,</param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:langguanApi.Common.Proxy.HttpProxy">
|
||||||
|
<summary>
|
||||||
|
http
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:langguanApi.Common.Proxy.HttpProxy.Get``1(System.Collections.Generic.Dictionary{System.String,System.String},System.String)">
|
||||||
|
<summary>
|
||||||
|
获取数据
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<param name="parameters"></param>
|
||||||
|
<param name="requestUri"></param>
|
||||||
|
<returns></returns>
|
||||||
|
<exception cref="T:System.Exception"></exception>
|
||||||
|
</member>
|
||||||
<member name="F:langguanApi.Common.Redis.RedisHelper._subscriber">
|
<member name="F:langguanApi.Common.Redis.RedisHelper._subscriber">
|
||||||
<summary>
|
<summary>
|
||||||
sub
|
sub
|
||||||
|
|
@ -2009,7 +2024,7 @@
|
||||||
HomeService
|
HomeService
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:langguanApi.Service.HomeService.#ctor(langguanApi.Service.DeviceService,langguanApi.Service.Hj212Service,Microsoft.Extensions.Configuration.IConfiguration,langguanApi.Common.CacheManager,langguanApi.Service.WeatherService,langguanApi.Service.AlertService,langguanApi.Service.DetectionService)">
|
<member name="M:langguanApi.Service.HomeService.#ctor(langguanApi.Service.DeviceService,langguanApi.Service.Hj212Service,Microsoft.Extensions.Configuration.IConfiguration,langguanApi.Common.CacheManager,langguanApi.Service.WeatherService,langguanApi.Service.AlertService,langguanApi.Service.DetectionService,langguanApi.Common.Proxy.HttpProxy)">
|
||||||
<summary>
|
<summary>
|
||||||
HomeService
|
HomeService
|
||||||
</summary>
|
</summary>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
using Amazon.Runtime;
|
||||||
|
using langguanApi.Extensions.AutoDI;
|
||||||
|
|
||||||
|
namespace langguanApi.Common.Proxy
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// http
|
||||||
|
/// </summary>
|
||||||
|
[ServiceInjection(InjectionType.Singleton)]
|
||||||
|
public class HttpProxy
|
||||||
|
{
|
||||||
|
private readonly IHttpClientFactory _httpClientFactory;
|
||||||
|
public HttpProxy(IHttpClientFactory httpClientFactory)
|
||||||
|
{
|
||||||
|
_httpClientFactory = httpClientFactory;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获取数据
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <param name="parameters"></param>
|
||||||
|
/// <param name="requestUri"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
/// <exception cref="Exception"></exception>
|
||||||
|
public async Task<T> Get<T>(Dictionary<string, string> parameters, string requestUri)
|
||||||
|
{
|
||||||
|
//从工厂获取请求对象
|
||||||
|
var client = _httpClientFactory.CreateClient();
|
||||||
|
if (parameters != null)
|
||||||
|
{
|
||||||
|
var strParam = string.Join("&", parameters.Select(o => o.Key + "=" + o.Value));
|
||||||
|
requestUri = string.Concat(requestUri, '?', strParam);
|
||||||
|
}
|
||||||
|
client.BaseAddress = new Uri(requestUri);
|
||||||
|
var resp = await client.GetAsync(requestUri);
|
||||||
|
if (resp.IsSuccessStatusCode)
|
||||||
|
{
|
||||||
|
var content = await resp.Content.ReadAsStringAsync();
|
||||||
|
return Newtonsoft.Json.JsonConvert.DeserializeObject<T>(content);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine($"请求失败,状态码:{resp.StatusCode},请求地址 {requestUri}");
|
||||||
|
return default(T);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,7 @@ using langguanApi.Common;
|
||||||
using langguanApi.Extensions.AutoDI;
|
using langguanApi.Extensions.AutoDI;
|
||||||
using langguanApi.Model;
|
using langguanApi.Model;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
using langguanApi.Common.Proxy;
|
||||||
|
|
||||||
namespace langguanApi.Service
|
namespace langguanApi.Service
|
||||||
{
|
{
|
||||||
|
|
@ -19,6 +20,7 @@ namespace langguanApi.Service
|
||||||
private readonly WeatherService _weatherService;
|
private readonly WeatherService _weatherService;
|
||||||
private readonly AlertService _alertService;
|
private readonly AlertService _alertService;
|
||||||
private readonly DetectionService _detectionService;
|
private readonly DetectionService _detectionService;
|
||||||
|
private HttpProxy _httpProxy;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// HomeService
|
/// HomeService
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -27,7 +29,7 @@ namespace langguanApi.Service
|
||||||
public HomeService(DeviceService device, Hj212Service hj212Service,
|
public HomeService(DeviceService device, Hj212Service hj212Service,
|
||||||
IConfiguration configuration, CacheManager cacheManager,
|
IConfiguration configuration, CacheManager cacheManager,
|
||||||
WeatherService weatherService, AlertService alertService,
|
WeatherService weatherService, AlertService alertService,
|
||||||
DetectionService detectionService)
|
DetectionService detectionService, HttpProxy httpProxy)
|
||||||
{
|
{
|
||||||
_deviceService = device;
|
_deviceService = device;
|
||||||
_hj212Service = hj212Service;
|
_hj212Service = hj212Service;
|
||||||
|
|
@ -36,6 +38,7 @@ namespace langguanApi.Service
|
||||||
_weatherService = weatherService;
|
_weatherService = weatherService;
|
||||||
_alertService = alertService;
|
_alertService = alertService;
|
||||||
_detectionService = detectionService;
|
_detectionService = detectionService;
|
||||||
|
_httpProxy = httpProxy;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// view
|
/// view
|
||||||
|
|
@ -49,7 +52,8 @@ namespace langguanApi.Service
|
||||||
Yesterday = 0.8,
|
Yesterday = 0.8,
|
||||||
LastWeek = 0.6,
|
LastWeek = 0.6,
|
||||||
};
|
};
|
||||||
Expression<Func<Model.HJ212, bool>> filter = exp => true;
|
// 首页热力图
|
||||||
|
var hotmap = new { };
|
||||||
// 首页设备报警数据
|
// 首页设备报警数据
|
||||||
var alerts = await _alertService.IndexData();
|
var alerts = await _alertService.IndexData();
|
||||||
// 首页设备检测数据
|
// 首页设备检测数据
|
||||||
|
|
@ -62,6 +66,9 @@ namespace langguanApi.Service
|
||||||
var ariQuality = await _cacheManager.GetConvertVale(RedisKeylist.AriQuality, getAriQualityFunc, 60 * 120);
|
var ariQuality = await _cacheManager.GetConvertVale(RedisKeylist.AriQuality, getAriQualityFunc, 60 * 120);
|
||||||
Func<Task<object>> getTrendFunc = async () => await _hj212Service.GetIndexData();
|
Func<Task<object>> getTrendFunc = async () => await _hj212Service.GetIndexData();
|
||||||
var trend = await _cacheManager.GetConvertVale(RedisKeylist.Trend, getTrendFunc, 60 * new Random().Next(70));
|
var trend = await _cacheManager.GetConvertVale(RedisKeylist.Trend, getTrendFunc, 60 * new Random().Next(70));
|
||||||
|
// alerts += await _httpProxy.Get<string>(null, _configuration.GetValue<string>("Apis:AlertUrl"));
|
||||||
|
// alerts += await _httpProxy.Get<string>(null, _configuration.GetValue<string>("Apis:RateUrl"));
|
||||||
|
|
||||||
//首页清洁运输比例
|
//首页清洁运输比例
|
||||||
var cleaData = new
|
var cleaData = new
|
||||||
{
|
{
|
||||||
|
|
@ -87,6 +94,7 @@ namespace langguanApi.Service
|
||||||
},
|
},
|
||||||
|
|
||||||
devices,
|
devices,
|
||||||
|
hotmap,
|
||||||
weather,
|
weather,
|
||||||
ariQuality,
|
ariQuality,
|
||||||
rate = new[] {
|
rate = new[] {
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ namespace langguanApi.Service
|
||||||
}
|
}
|
||||||
if (!string.IsNullOrEmpty(OrgId))
|
if (!string.IsNullOrEmpty(OrgId))
|
||||||
{
|
{
|
||||||
deviceExp= deviceExp.And(filter => filter.OrgId == OrgId);
|
deviceExp = deviceExp.And(filter => filter.OrgId == OrgId);
|
||||||
}
|
}
|
||||||
var devices = (await _deviceService.GetListWithExp(deviceExp)).ToList();
|
var devices = (await _deviceService.GetListWithExp(deviceExp)).ToList();
|
||||||
foreach (var item in result)
|
foreach (var item in result)
|
||||||
|
|
@ -106,8 +106,8 @@ namespace langguanApi.Service
|
||||||
public async Task<ApiResult> List(int OrganizedType = 1)
|
public async Task<ApiResult> List(int OrganizedType = 1)
|
||||||
{
|
{
|
||||||
List<OrganizedByDeviceDto> dto = new List<OrganizedByDeviceDto>();
|
List<OrganizedByDeviceDto> dto = new List<OrganizedByDeviceDto>();
|
||||||
Expression<Func<Organized, bool>> exp = filter => filter.OrganizedType == OrganizedType && filter.IsDelete == false;
|
Expression<Func<Organized, bool>> exp = filter => filter.OrganizedType == OrganizedType
|
||||||
|
&& filter.IsDelete == false;
|
||||||
var result = (await base.GetListWithExp(exp)).OrderByDescending(x => x.Order).ToList();
|
var result = (await base.GetListWithExp(exp)).OrderByDescending(x => x.Order).ToList();
|
||||||
return new ApiResult() { code = 0, data = result };
|
return new ApiResult() { code = 0, data = result };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,14 @@
|
||||||
"Index": 5
|
"Index": 5
|
||||||
},
|
},
|
||||||
"Weather": "https://weather.cma.cn/api/now/54511", //天气预报地址,中国气象
|
"Weather": "https://weather.cma.cn/api/now/54511", //天气预报地址,中国气象
|
||||||
"AirQuality": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000",//空气质量API地址
|
"AirQuality": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000", //空气质量API地址
|
||||||
|
"Apis": {
|
||||||
|
"RateUrl": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000", //首页设备在线API地址
|
||||||
|
"AlertUrl": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000", //首页设报警API地址
|
||||||
|
"DeviceList": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000", //环境治理 API地址
|
||||||
|
"DeviceInfo": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000" //设备明细 API地址
|
||||||
|
|
||||||
|
},
|
||||||
"Home": {
|
"Home": {
|
||||||
"Title": "鄂托克旗新航焦化有限公司",
|
"Title": "鄂托克旗新航焦化有限公司",
|
||||||
"Center": {
|
"Center": {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue