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