using JT808.Gateway.Abstractions; using JT808.Gateway.Abstractions.Dtos; using System; using System.Buffers.Text; using System.Collections.Generic; using System.Net.Http; using System.Text; using System.Text.Json; using System.Threading.Tasks; namespace JT808.Gateway.WebApiClientTool { /// /// /// public class JT808HttpClient { /// /// /// public HttpClient HttpClient { get; } /// /// /// /// public JT808HttpClient(HttpClient httpClient) { HttpClient = httpClient; } /// /// 统一下发信息 /// /// /// public async ValueTask> UnificationSend(JT808UnificationSendRequestDto jT808UnificationSendRequestDto) { var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.UnificationSend); request.Content = new StringContent(JsonSerializer.Serialize(jT808UnificationSendRequestDto)); var response = await HttpClient.SendAsync(request); response.EnsureSuccessStatusCode(); var data = await response.Content.ReadAsStreamAsync(); var value = await JsonSerializer.DeserializeAsync>(data); return value; } /// /// 会话服务集合 /// /// public async ValueTask>> GetTcpSessionAll() { var request = new HttpRequestMessage(HttpMethod.Get, JT808GatewayConstants.JT808WebApiRouteTable.SessionTcpGetAll); var response = await HttpClient.SendAsync(request); response.EnsureSuccessStatusCode(); var data = await response.Content.ReadAsStreamAsync(); var value = await JsonSerializer.DeserializeAsync>>(data); return value; } /// /// 会话服务-通过设备终端号查询对应会话信息 /// /// /// public async ValueTask> QueryTcpSessionByTerminalPhoneNo(string terminalPhoneNo) { var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.QueryTcpSessionByTerminalPhoneNo); request.Content = new StringContent(terminalPhoneNo); var response = await HttpClient.SendAsync(request); response.EnsureSuccessStatusCode(); var data = await response.Content.ReadAsStreamAsync(); var value = await JsonSerializer.DeserializeAsync>(data); return value; } /// /// 会话服务-通过设备终端号移除对应会话 /// /// /// public async ValueTask> RemoveTcpByTerminalPhoneNo(string terminalPhoneNo) { var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.SessionRemoveByTerminalPhoneNo); request.Content = new StringContent(terminalPhoneNo); var response = await HttpClient.SendAsync(request); response.EnsureSuccessStatusCode(); var data = await response.Content.ReadAsStreamAsync(); var value = await JsonSerializer.DeserializeAsync>(data); return value; } /// /// 会话服务集合 /// /// public async ValueTask>> GetUdpSessionAll() { var request = new HttpRequestMessage(HttpMethod.Get, JT808GatewayConstants.JT808WebApiRouteTable.SessionUdpGetAll); var response = await HttpClient.SendAsync(request); response.EnsureSuccessStatusCode(); var data = await response.Content.ReadAsStreamAsync(); var value = await JsonSerializer.DeserializeAsync>>(data); return value; } /// /// 会话服务-通过设备终端号查询对应会话信息 /// /// /// public async ValueTask> QueryUdpSessionByTerminalPhoneNo(string terminalPhoneNo) { var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.QueryUdpSessionByTerminalPhoneNo); request.Content = new StringContent(terminalPhoneNo); var response = await HttpClient.SendAsync(request); response.EnsureSuccessStatusCode(); var data = await response.Content.ReadAsStreamAsync(); var value = await JsonSerializer.DeserializeAsync>(data); return value; } /// /// 会话服务-通过设备终端号移除对应会话 /// /// /// public async ValueTask> RemoveUdpByTerminalPhoneNo(string terminalPhoneNo) { var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.RemoveUdpByTerminalPhoneNo); request.Content = new StringContent(terminalPhoneNo); var response = await HttpClient.SendAsync(request); response.EnsureSuccessStatusCode(); var data = await response.Content.ReadAsStreamAsync(); var value = await JsonSerializer.DeserializeAsync>(data); return value; } } }