Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- from BaseHTTPServer import HTTPServer
- from BaseHTTPServer import BaseHTTPRequestHandler
- import cgi
- import json
- import urllib2
- import requests
- import time
- import xml.etree.ElementTree
- import base64
- import os
- from urlparse import urlparse, parse_qs
- serverURL = "https://demo.audimex.com/cgi-bin/demo_12_1_trade_mobile__7034/wal.fcgi?"
- class AMRequestHandler (BaseHTTPRequestHandler):
- def do_GET(self):
- print("GET")
- print(self.path)
- self.callProxyGet()
- def do_POST(self):
- print("POST")
- print(serverURL)
- self.callProxyPost()
- def callProxyGet(self):
- url = serverURL + self.path[2:]
- form = cgi.FieldStorage()
- response = urllib2.urlopen(url).read()
- self.send_response(200)
- self.send_header('Content-type','text/html')
- self.end_headers()
- self.wfile.write(response)
- queryComponents = parse_qs(urlparse(self.path).query)
- interface = queryComponents["interface"][0][len("audimex::mobile::"):]
- date = str(int(time.time()))
- # Output
- filename = "CLIENT_" + interface + "_" + date + "_GET.txt"
- filePath = os.path.join("logs", filename)
- self.createDirectory("logs")
- outputFile = open(filePath,"w")
- outputFile.write(str(queryComponents))
- outputFile.close()
- # Input
- filename = "SERVER_" + interface + "_" + date + "_GET.txt"
- filePath = os.path.join("logs",filename)
- xmlResponse = xml.etree.ElementTree.fromstring(unicode(response))
- responseDataEncoded = xmlResponse[1].text
- responseDataDecoded = base64.decodestring(responseDataEncoded)
- jsonDictionary = json.loads(responseDataDecoded)
- prettyJSON = json.dumps(jsonDictionary, indent=4)
- self.createDirectory("logs")
- outputFile = open(filePath,"w")
- outputFile.write(prettyJSON)
- outputFile.close()
- def callProxyPost(self):
- url = serverURL
- ctype, parseDictionary = cgi.parse_header(self.headers.getheader('content-type'))
- postData = cgi.parse_multipart(self.rfile, parseDictionary)
- response = requests.post(url, data=postData, verify=False)
- self.send_response(200)
- self.send_header('Content-type','text/html')
- self.end_headers()
- self.wfile.write(response.text)
- date = str(int(time.time()))
- # Output
- outputDataDecoded = base64.decodestring(unicode(postData["data"]))
- interface = postData["interface"][0][len("audimex::mobile::"):]
- filename = "CLIENT_" + interface + "_" + date + "_POST.txt"
- filePath = os.path.join("logs", filename)
- self.createDirectory("logs")
- jsonDictionary = json.loads(outputDataDecoded)
- prettyJSON = json.dumps(jsonDictionary, indent=4)
- outputFile = open(filePath,"w")
- outputFile.write(prettyJSON)
- outputFile.close()
- # Input
- filename = "SERVER_" + interface + "_" + date + "_POST.txt"
- filePath = os.path.join("logs",filename)
- self.createDirectory("logs")
- outputFile = open(filePath,"w")
- outputFile.write(response.text)
- outputFile.close()
- def createDirectory(self, path):
- if not os.path.exists(path):
- os.makedirs(path)
- server = HTTPServer(("yushkova.haulmont.com", 80), AMRequestHandler)
- server.serve_forever()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement