servidor tomcat JSON cliente Python

Vamos a implementar un servicio tomcat , Python

Para programa un servidor tomcat 9.0 inicialmente debemos descargar las librerias
de  Gson.jar 
Las cuales debemos instalar en la carpeta lib de nuestra distribución de apache-tomcat.

Luego debemos crear un POJO de la clase queremos queremos servir desde tomcat.

En este voy a usar la clase:
en WEB-INF/classes/beans/InfoBean.java

//*******************************************************
//                                   Info Bean
//*******************************************************
package beans ;
/*            Bean para asignacion de Varibles de SThor
   06/03/2018
*/

import java.util.* ;

public class InfoBean
{
    private String login            = ""                              ;
    private String passwd        = ""                              ;
    private String idNFC         = ""                              ;
    private String dispositivo   = ""                             ;
    private String saludo         = ""                              ;
    private String status          = ""                              ;

   //                    Info

    public InfoBean()
    {

    }
    public void setLogin(String _login)
        {
            login = _login                                              ;
        }
    public String getLogin()                  
        {
            return (login)                                              ;
        }
   public void setPasswd(String _passwd)
        {
            passwd = _passwd                                      ;
        }
    public String getPasswd()                  
        {
            return (passwd)                                          ;
        }
     public void setIdNFC(String _idNFC)
        {
            idNFC = _idNFC                                         ;
        }
    public String getIdNFC()                  
        {
            return (idNFC)                                            ;
        }
    public void setDispositivo(String _dispositivo)
        {
            dispositivo = _dispositivo                           ;
        }

    public String getDispositivo()                  
        {
            return (dispositivo)                                     ;
        }

     public void setSaludo(String _saludo)
        {
            saludo = _saludo                                        ;
        }
    public String getSaludo()                  
        {
            return (saludo)                                           ;
        }

     public void setStatus(String _status)
        {
            status = _status                                         ;
        }
    public String getStatus()                  
        {
            return (status)                                           ;
        }

}
(END)


-----------------------------------------------------------------------------------------------
Luego programo el servicio en tomcat
1. Importo las librerias Gson , que debí haber instalado inicialmente
    en la carpeta /lib de tomcat
2. Llamo el Bean, que define anteriormente denominado InfoBean
    es muy importante tener claro que este bin es el que permite crear
    el objeto que posteriormente publicaremos con los métodos del Gson.
    asignado los valores a json , mediante los SET del bean que vamos
    a implementar
3. Recojo o asigno los parámetros que voy asignar a JSON en este
    la mayoría vienen de un request y uno es asignado directamente
    status = "ok"
4. Asigno los valores mediante SET al objeto gson
    En este ejercicio el parametro  setPrettyPrinting() es
    simplemente demostrativo para permitir ver el contenido
    del objeto gson
5. Definimos una varible string json para almacenar el objeto gson
    con casting para poder publicarlo de forma sencilla
    mediante out.println()

  
En general el trabajo pesado de la aplicacion lo hace el bean
en   gson.toJson(infoBean);
donde e objeto gson toma los parametros almacenados en la clase
infoBean.

//***********************************************************
//
//***********************************************************

<%@ page session="true"

    import = "com.google.gson.Gson"
    import = "com.google.gson.GsonBuilder"

%>

   <jsp:useBean id="infoBean" scope="session" class="beans.InfoBean" />

<%

  String login          = request.getParameter("login")           ;
  String passwd       = request.getParameter("passwd")       ;
  String idNFC        = request.getParameter("id")                ;
  String dispositivo = request.getParameter("dispositivo")  ;
  String status         = "ok"                                                    ;

  infoBean.setLogin(login);
  infoBean.setPasswd(passwd);
  infoBean.setIdNFC(idNFC);
  infoBean.setDispositivo(dispositivo);
  infoBean.setSaludo("Bienvenido:" + idNFC);
  infoBean.setStatus(status);

  Gson gson = new GsonBuilder().setPrettyPrinting().create();

  String json = gson.toJson(infoBean);

  out.println(json);

%>

-------------------------------------------------------------------------------------------------------------
Ahora programamos el cliente Python.

Debemos tener instaladas las librería necesarias json, ademas
httplib,urllib, request , la versión 2.7 de Python que estos utilizando
solo me pidió instalar las json

En Centos  : yum install json*
En Ubuntu : apt-get install json*

En la variable respuesta queda el objeto json que llega desde el servidor, y en mensaje asigno el valor del campo status de ese objeto, observar la forma como se accesa cada campo del objeto, donde se hace un llamado del objeto json y  se accede a sus campos como un campo de un arreglo, invocando el nombre del campo requerido.

----------------------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf8 -*-

import httplib,urllib
import json
import requests

# Definimos parámetros de prueba enviados al servidor el cual
# debe devolverlos acompañados de un status = ok
# que definimos en el servidor.

URL                  = "http://miservidor:8080/respuesta"
LOGIN             = "ADMOR"
PASSWD          = "ADMOR"
DISPOSITIVO = "INGRESO 1"
UID                  =  "1234"

parametros = {'login': LOGIN,'passwd': PASSWD,'id': UID,'dispositivo': DISPOSITIVO }

r = requests.get(URL, params=parametros)
r.headers['content-type']

respuesta = r.json()
mensaje   = respuesta["status"]
 

status = r.status_code

print  "status:" + str(status)

if status != 200:
    print "No encontro pagina o  no se pudo conectar
else:
    print respuesta
    print "Usuario autorizado " + mensaje
    if mensaje == "ok":
       print "Usuario autorizado" + mensaje
    else:
       print "Usuario rechazado"

-------------------------------------------------------------------------------------------------
 Esta es la patalla de salida de este ejercicio.

status:200

{u'status': u'ok', u'saludo': u'Bienvenido:1234', u'passwd': u'ADMOR', u'login': u'ADMOR', u'idNFC': u'1234', u'dispositivo': u'INGRESO 1'}

Usuario autorizado ok



Comentarios

Entradas populares