Imports Newtonsoft.Json Imports System.Net Imports System.Net.Http Imports System.Net.Security Imports System.Threading.Tasks Public Class resumenSolicitudesComunicacionesEntreFechas Inherits System.Web.UI.Page 'Shared usuariosSeleccionados As List(Of String) Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("usuario") = "" Then Response.Redirect("default.aspx") End If If Session("modo") = "PERSONAL" Then 'bolsaDeHorasBL.Visible = False VAAPBCBL.Visible = False intPicadaBL.Visible = False 'informPicadasBL.Visible = False Else estIncPicBL.visible = False VAAPBCBLpers.Visible = false intPicadaPersBL.Visible = False Li1.Visible = False End If 'usuariosSeleccionados = Session("usuariosSeleccionados") Dim fechaToday = DateTime.Now.ToString("yyyy-MM-dd") inpIniRIM.Value = DateTime.Now.ToString("yyyy") + "-01-01" inpFinRIM.Value = fechaToday End Sub Public Shared Async Function ObtenerRIM(ini As Date, fin As Date) As Task(Of String) Dim usuariosSeleccionados As List(Of String) = HttpContext.Current.Session("usuariosSeleccionados") Dim DNI = usuariosSeleccionados If DNI.Contains(HttpContext.Current.Session("persona").Personas(0).Dni) = False Then DNI.Add(HttpContext.Current.Session("persona").Personas(0).Dni) End If Try ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True) '// Aquí preparamos el objeto para la consulta. Dim objetoConsulta As New Models.Consulta objetoConsulta.fechaInicio = ini objetoConsulta.fechaFin = fin objetoConsulta.listaNif = DNI 'New List(Of String) '// Aquí convertimos el objeto en una cadena JSON. Dim jsonConsulta As String = JsonConvert.SerializeObject(objetoConsulta) Dim url As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/ExcelResumenAsistencia" Dim clienteHTTP As New HttpClient Dim contenidoConsultaHTTP As New StringContent(jsonConsulta, Encoding.UTF8, "application/json") Debug.WriteLine("CargarListadodePicadasAsync:1===" + Now.ToLongTimeString) Dim respuestaHTTP As HttpResponseMessage = Await clienteHTTP.PostAsync(url, contenidoConsultaHTTP).ConfigureAwait(False) Debug.WriteLine("CargarListadodePicadasAsync:2===" + Now.ToLongTimeString) Dim sRespuesta As String = Await respuestaHTTP.Content.ReadAsStringAsync().ConfigureAwait(False) Debug.WriteLine("CargarListadodePicadasAsync:3===" + Now.ToLongTimeString) '// danmun: Aquí SÍ hay que poner `.ConfigureAwait(False)` al final de las llamadas a métodos Async() '// para que el control de ejecución vuelva a este hilo. ''// Deserializar a una clase. Dim settings As New Newtonsoft.Json.JsonSerializerSettings() settings.CheckAdditionalContent = True Dim objetoDatos As Models.ResultadoExcelResumenAsistencia = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Models.ResultadoExcelResumenAsistencia)(sRespuesta, settings) Debug.WriteLine("Resultado: " & objetoDatos.Resultado) Return sRespuesta Catch ex As Exception End Try End Function End Class