コード例 #1
0
ファイル: fetch_query.py プロジェクト: ZubairNabi/minerva
 def __post(self, method, encoded_message, rsa_encrypt=None, aes_encrypt=None):
     buf = cStringIO.StringIO()
     query_var = 'message'
     base_url = 'http://' + self.server_ip + ':' + str(self.server_port)
     encoded_message = base64.b64encode(encoded_message)
     service_url = '/' + method + '/?' + query_var + '=' + encoded_message
     self.logger.debug('URL: %s', base_url + service_url)
     self.curl.setopt(pycurl.URL, base_url + service_url)
     self.curl.setopt(pycurl.WRITEFUNCTION, buf.write)
     try:
         self.curl.perform()
         if self.curl.getinfo(pycurl.HTTP_CODE) == 200:
             self.logger.debug('%s: Success!' % method)
         else:
             self.logger.debug('%s: Failure!' % method)
         response = buf.getvalue()
         response = base64.b64decode(response)
         buf.close()
         if rsa_encrypt:
             response = RSA._rsa_decrypt(self.rsa_key, response)
         elif aes_encrypt:
             response = AES._aes_decrypt(self.aes_key, response)
         return response
     except pycurl.error, msg: 
         errno, text = msg 
         self.logger.error('pycURL Error! (error number %d): %s' % (errno, text))
         self.logger.error('pycURL HTTP status code: %d' % (self.curl.getinfo(pycurl.HTTP_CODE)))