Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. He creado una clase Python para crear los requests, tal como esta:
  2.  
  3. # -*- coding: utf-8 -*-
  4.  
  5. import requests
  6. import webbrowser
  7. from datetime import datetime
  8. import hashlib
  9. import os
  10.  
  11.  
  12. # 23-10-2016 Módulo de Jasper Reports.
  13.  
  14. class jasperreports(object):
  15. '''Clase de configuración de informes para Jasper Reports'''
  16.  
  17. def __init__(self, maquina, puerto, recurso):
  18. self.__maquina = maquina
  19. self.__puerto = puerto
  20. self.__recurso = recurso
  21. self.__session = requests.Session()
  22. self.__token = self.__generador_token()
  23.  
  24. def __generador_token(self):
  25. '''Generador de token'''
  26. return hashlib.sha1(os.urandom(128)).hexdigest()
  27.  
  28. def login(self, usuario, passwd):
  29. '''Clase login para acceso a JasperServer'''
  30.  
  31. url = "http://%s:%s/jasperserver/rest_v2/login" % (self.__maquina,
  32. self.__puerto)
  33.  
  34. data = "j_username=%s&j_password=%s" % (usuario, passwd)
  35. header = {"content-type" : "application/x-www-form-urlencoded"}
  36.  
  37. ret = self.__session.post(url, data, headers = header)
  38. self.__cookie = ret.cookies['JSESSIONID']
  39.  
  40. print ret
  41.  
  42. def report(self, path_report, report, format_ = None, params = None):
  43. url = 'http://%s:%s/%s/rest_v2/reports/%s/%s' % (self.__maquina,
  44. str(self.__puerto),
  45. self.__recurso,
  46. path_report,
  47. report)
  48. headers = {"Authorization": "Basic " + self.__token,
  49. "Accept": "application/json",
  50. "Content-Type": "application/xml"}
  51.  
  52. auth = ('jasperadmin', 'jasperadmin')
  53. cookies = dict(cookies=self.__cookie)
  54. ret = self.__session.get(url, headers = headers, auth =
  55. ('jasperadmin', 'jasperadmin'), cookies = cookies)
  56.  
  57. try:
  58. webbrowser.open(ret)
  59. except:
  60. nomfich = 'temp_error_%s.html' % str(datetime.now())
  61. f = open('temp/%s' % nomfich,'w')
  62. f.write(ret.text)
  63. f.close()
  64. webbrowser.open('temp/%s' % nomfich)
  65.  
  66.  
  67. def info(self):
  68. url = 'http://%s:%s/%s/rest_v2/serverInfo' % (self.__maquina,
  69. str(self.__puerto),
  70. self.__recurso)
  71.  
  72. # Se realiza petición de información al servidor JasperServer...
  73. ret = requests.get(url,headers={"accept":"application/json"}).json()
  74.  
  75. # Se recupera información del servidor si todo ha ido bien...
  76. data = { 'dateFormatPattern' : ret['dateFormatPattern'],
  77. 'datetimeFormatPattern' : ret['datetimeFormatPattern'],
  78. 'version' : ret['version'],
  79. 'edition' : ret['edition'],
  80. 'build' : ret['edition']
  81. }
  82.  
  83. # Se devuelven datos.
  84. return data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement