HttpService.cs
1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using HHECS.BllModel;
using HHECS.DAQClient.Dto;
using System.Configuration;
using System.Net.Http;
using System.Text;
using System.Text.Json;
namespace HHECS.DAQClient.Services
{
internal class HttpService
{
private readonly HttpClient _httpClient;
private readonly JsonSerializerOptions jsonSerializerOptions = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
};
public HttpService(HttpClient httpClient)
{
httpClient.BaseAddress = new Uri(ConfigurationManager.AppSettings["API"]!);
httpClient.DefaultRequestHeaders.Add("Accept", "application/json");
httpClient.DefaultRequestHeaders.Add("User-Agent", "HHECS.DAQClient");
_httpClient = httpClient;
}
/// <summary>
/// 推送设备实时数据
/// </summary>
/// <param name="entity"></param>
public BllResult SendEquipmentData(IEnumerable<EquipmentDataDto> entity)
{
var json = JsonSerializer.Serialize(entity, jsonSerializerOptions);
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
var result = _httpClient.PostAsync("Api/Equipment/EquipmentData", stringContent).Result;
var resultContent = result.Content.ReadAsStringAsync().Result;
if (result.IsSuccessStatusCode)
{
return JsonSerializer.Deserialize<BllResult>(resultContent);
}
else
{
if (string.IsNullOrEmpty(resultContent))
{
resultContent = result.ReasonPhrase;
}
return BllResultFactory.Error($"推送失败:{resultContent}");
}
}
}
}