public void Test2() { // 心跳会话包 JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789012"); SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1)); // 文本信息包 JT808Package jT808Package2 = JT808.Protocol.Enums.JT808MsgId.文本信息下发.Create("123456789012", new JT808_0x8300 { TextFlag = 5, TextInfo = "smallchi 518" }); var data = JT808Serializer.Serialize(jT808Package2); JT808UnificationSendRequestDto jT808UnificationSendRequestDto = new JT808UnificationSendRequestDto(); jT808UnificationSendRequestDto.TerminalPhoneNo = "123456789012"; jT808UnificationSendRequestDto.Data = data; HttpClient httpClient = new HttpClient(); // 调用内置的http服务接收文本信息下发 var result = httpClient.PostAsync("http://127.0.0.1:828/jt808api/UnificationSend", new StringContent(JsonConvert.SerializeObject(jT808UnificationSendRequestDto))).Result; string content = result.Content.ReadAsStringAsync().Result; JT808ResultDto <bool> jt808Result = JsonConvert.DeserializeObject <JT808ResultDto <bool> >(content); Assert.Equal(200, jt808Result.Code); Assert.True(jt808Result.Data); SimpleTcpClient.Down(); }
/// <summary> /// 统一下发信息 /// </summary> /// <param name="parameter"></param> /// <returns></returns> public async ValueTask <JT808ResultDto <bool> > UnificationSend(JT808UnificationSendRequestDto parameter) { var response = await HttpClient.PostAsJsonAsync(JT808GatewayConstants.JT808WebApiRouteTable.UnificationSend, parameter); response.EnsureSuccessStatusCode(); var value = await response.Content.ReadFromJsonAsync <JT808ResultDto <bool> >(); return(value); }
/// <summary> /// 基于Udp的统一下发信息 /// </summary> /// <param name="request"></param> /// <returns></returns> public JT808HttpResponse UnificationUdpSend(JT808HttpRequest request) { if (string.IsNullOrEmpty(request.Json)) { return(EmptyHttpResponse()); } JT808UnificationSendRequestDto jT808UnificationSendRequestDto = JsonConvert.DeserializeObject <JT808UnificationSendRequestDto>(request.Json); var result = jT808UnificationUdpSendService.Send(jT808UnificationSendRequestDto.TerminalPhoneNo, jT808UnificationSendRequestDto.Data); return(CreateJT808HttpResponse(result)); }
/// <summary> /// 统一下发信息 /// </summary> /// <param name="jT808UnificationSendRequestDto"></param> /// <returns></returns> public JT808ResultDto <bool> UnificationSend(JT808UnificationSendRequestDto jT808UnificationSendRequestDto) { var request = new HttpRequestMessage(HttpMethod.Post, JT808NettyConstants.JT808WebApiRouteTable.UnificationSend); request.Content = new StringContent(JsonSerializer.Serialize(jT808UnificationSendRequestDto)); var response = HttpClient.SendAsync(request).Result; response.EnsureSuccessStatusCode(); var value = JsonSerializer.Deserialize <JT808ResultDto <bool> >(response.Content.ReadAsByteArrayAsync().Result); return(value); }
/// <summary> /// 统一下发信息 /// </summary> /// <param name="jT808UnificationSendRequestDto"></param> /// <returns></returns> public async ValueTask <JT808ResultDto <bool> > 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 <JT808ResultDto <bool> >(data); return(value); }
public void UnificationSendTest() { var ch = WebExt.CreateEmbeddedChannel(); JT808UnificationSendRequestDto jT808UnificationSendRequestDto = new JT808UnificationSendRequestDto { TerminalPhoneNo = "123456789", Data = new byte[] { 1, 2, 3, 4 } }; byte[] content = JsonSerializer.SerializeToUtf8Bytes(jT808UnificationSendRequestDto); ch.WriteInbound(WebExt.CreatePostRequest(JT808NettyConstants.JT808WebApiRouteTable.UnificationSend, content)); var result = ch.As <bool>(); Assert.False(result.Data); Assert.Equal(JT808ResultCode.Ok, result.Code); Assert.Equal("offline", result.Message); }
public void UnificationSendTest() { JT808ResultDto <bool> jT808ResultDto = new JT808ResultDto <bool>(); jT808ResultDto.Data = true; jT808ResultDto.Code = 200; JT808UnificationSendRequestDto jT808UnificationSendRequestDto = new JT808UnificationSendRequestDto { TerminalPhoneNo = "123456789", Data = new byte[] { 1, 2, 3, 4 } }; JT808HttpClient jT808HttpClient = new JT808HttpClient(CreateHttpClient(JT808NettyConstants.JT808WebApiRouteTable.UnificationSend, JsonSerializer.Serialize(jT808UnificationSendRequestDto), JsonSerializer.Serialize(jT808ResultDto))); var result = jT808HttpClient.UnificationSend(jT808UnificationSendRequestDto); Assert.Equal(jT808ResultDto.Code, result.Code); Assert.Equal(jT808ResultDto.Data, result.Data); }
public async Task <ActionResult <JT808ResultDto <bool> > > UnificationSend([FromBody] JT808UnificationSendRequestDto parameter) { JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>(); try { resultDto.Data = await SessionManager.TrySendByTerminalPhoneNoAsync(parameter.TerminalPhoneNo, Convert.FromHexString(parameter.HexData)); resultDto.Code = JT808ResultCode.Ok; } catch (Exception ex) { resultDto.Data = false; resultDto.Code = JT808ResultCode.Error; resultDto.Message = ex.StackTrace; } return(resultDto); }
/// <summary> /// 统一下发信息 /// </summary> /// <param name="json"></param> /// <returns></returns> public byte[] UnificationSend(string json) { if (string.IsNullOrEmpty(json)) { return(EmptyHttpResponse()); } JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>(); try { JT808UnificationSendRequestDto jT808UnificationSendRequestDto = JsonSerializer.Deserialize <JT808UnificationSendRequestDto>(json); resultDto.Data = SessionManager.TrySendByTerminalPhoneNoAsync(jT808UnificationSendRequestDto.TerminalPhoneNo, jT808UnificationSendRequestDto.HexData.ToHexBytes()) .GetAwaiter() .GetResult(); resultDto.Code = JT808ResultCode.Ok; } catch (Exception ex) { resultDto.Data = false; resultDto.Code = JT808ResultCode.Error; resultDto.Message = ex.StackTrace; } return(CreateHttpResponse(resultDto)); }