import time import BaseHTTPServer import httplib, urllib from OpenSSL import SSL import socket import re try: from pywbxml import wbxml2xml except: print "If you want syncml xml to be decoded, you have to install pywbxml package" HOST_NAME = '192.168.0.102' PORT_NUMBER = 8080 class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler): def do_POST(s): """Respond to a GET request.""" length_m=re.compile("Content-Length: (\d+)") path=s.path.lstrip("http://https//") headers=s.headers headers=str(headers).replace("Host: https","Host: m.google.com") data_size=int(length_m.findall(str(headers))[0]) data=s.rfile.read(data_size) print "-"*20+"SyncML request"+"-"*20 print path print headers try: print wbxml2xml(data) except: print data s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s2.connect(("m.google.com",443)) ctx = SSL.Context(SSL.SSLv23_METHOD) conn = SSL.Connection(ctx, s2) conn.set_connect_state() conn.send("POST https://"+path+" HTTP/1.1\n"+str(headers)+"\r\n"+data) header = conn.recv(1024) s.wfile.write(header) print "-"*20+"SyncML answer"+"-"*20 print header try: data_size=int(length_m.findall(str(header))[0]) data=conn.recv(data_size) if len(str(data))