Saltar al contenido principal

Recuperar una lista de apps de Qlik NPrinting

El siguiente código amplía el ejemplo anterior de una aplicación de consola .NET creando una conexión autenticada y recuperando una lista de apps de Qlik NPrinting. Recuerde sustituir server.name.com por el nombre real de su Qlik NPrinting Server.

Nota informativaEl método de deserialización JSON en este ejemplo utiliza una librería Newtonsoft de terceros para convertir JSON en un objeto.

static void Main(string[] args) { //Create the HTTP Request (authenticate) and add required headers ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@ "https://server.name.com:4993/api/v1/login/ntlm"); CookieContainer cookies = new CookieContainer(); request.CookieContainer = cookies; request.Method = "GET"; request.UserAgent = "Windows"; request.Accept = "application/json"; // specify to run as the current Microsoft Windows user request.UseDefaultCredentials = true; try { // make the web request and return the content HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader responseReader = new StreamReader(response.GetResponseStream()); string sResponseHTML = responseReader.ReadToEnd(); Console.WriteLine(sResponseHTML); } catch (Exception ex) { Console.WriteLine(ex.Message); } //Create second HTTP request (get list of apps) and add required headers HttpWebRequest secondRequest = (HttpWebRequest)WebRequest.Create(@ "https://server.name.com:4993/api/v1/apps"); //assign cookie to request to maintain session secondRequest.CookieContainer = cookies; secondRequest.Method = "GET"; secondRequest.UserAgent = "Windows"; secondRequest.Accept = "application/json"; // specify to run as the current Microsoft Windows user secondRequest.UseDefaultCredentials = true; try { HttpWebResponse response2 = (HttpWebResponse)secondRequest.GetResponse(); StreamReader responseReader2 = new StreamReader(response2.GetResponseStream()); string sResponseHTML2 = responseReader2.ReadToEnd(); dynamic jsonObj = JsonConvert.DeserializeObject(sResponseHTML2); foreach (var app in jsonObj.data.items) { Console.WriteLine(app.name); } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.Read(); }