Beispiel #1
0
def probobuf_request(host, method, url, body, headers, msg=None):
    conn = HTTPSConnection(host)
    sock = socket.create_connection((conn.host, conn.port), conn.timeout, conn.source_address)
    conn.sock = ssl.wrap_socket(sock, conn.key_file, conn.cert_file, ssl_version=ssl.PROTOCOL_TLSv1)
    request = conn.request(method, url, body, headers)
    response = conn.getresponse()
    length = response.getheader("content-length")

    if length is None:
        length = 0
    else:
        length = int(length)

    data = response.read()

    while len(data) < length:
        d = response.read()
        data += d

    conn.close()
    if msg == None:
        return data

    res = msg()
    res.ParseFromString(data)
    return res
Beispiel #2
0
def probobuf_request(host, method, url, body, headers, msg=None):
    conn = HTTPSConnection(host)
    sock = socket.create_connection((conn.host, conn.port), conn.timeout, conn.source_address)
    conn.sock = ssl.wrap_socket(sock, conn.key_file, conn.cert_file, ssl_version=ssl.PROTOCOL_TLSv1)
    request = conn.request(method, url, body, headers)
    response = conn.getresponse()
    length = response.getheader("content-length")

    if length is None:
        length = 0
    else:
        length = int(length)

    data = response.read()

    while len(data) < length:
        d = response.read()
        data += d

    conn.close()
    if msg == None:
        return data

    res = msg()
    res.ParseFromString(data)
    return res
def plist_request(host, method, url, body, headers):
    conn = HTTPSConnection(host)
    sock = socket.create_connection((conn.host, conn.port), conn.timeout,
                                    conn.source_address)
    conn.sock = ssl.wrap_socket(sock,
                                conn.key_file,
                                conn.cert_file,
                                ssl_version=ssl.PROTOCOL_TLSv1)
    request = conn.request(method, url, body, headers)
    response = conn.getresponse()

    data = response.read()
    try:
        plist_data = plistlib.readPlistFromString(data)
    except:
        plist_data = None

    if response.status != 200:
        if plist_data is None:
            print "Request %s returned code %d" % (url, response.status)
        else:
            print "{}: {}".format(plist_data.title, plist_data.message)

        return

    return plist_data
Beispiel #4
0
	def WebConnection(urlIn):
		if urlIn.upper().find("HTTP://") >= 0:
			url = urlIn[7:].split("/")[0]
			post = urlIn[7:].replace(url, "")
			return HTTPConnection(url), post
		else:
			url = urlIn[8:].split("/")[0]
			post = urlIn[8:].replace(url, "")
			# OpenSSL 1.x workaround, we basically need to re-implement HTTPSConnection.connect()
			# to be able to request ssl.PROTOCOL_TLSv1
			conn = HTTPSConnection(url)
			sock = socket.create_connection((conn.host, conn.port), conn.timeout, conn.source_address)
			conn.sock = ssl.wrap_socket(sock, conn.key_file, conn.cert_file, ssl_version=ssl.PROTOCOL_TLSv1)
			return conn, post
Beispiel #5
0
def probobuf_request(host, method, url, body, headers, msg=None, log=None):
    conn = HTTPSConnection(host)
    sock = socket.create_connection((conn.host, conn.port), conn.timeout,
                                    conn.source_address)
    conn.sock = ssl.wrap_socket(sock,
                                conn.key_file,
                                conn.cert_file,
                                ssl_version=ssl.PROTOCOL_TLSv1)
    request = conn.request(method, url, body, headers)
    response = conn.getresponse()
    length = response.getheader("content-length")

    if length is None:
        length = 0
    else:
        length = int(length)

    data = response.read()

    while len(data) < length:
        d = response.read()
        data += d

    conn.close()
    if msg == None:
        if log:
            log.write(
                "probobuf request with host {}, method {}, url {}, body {}:\n".
                format(host, method, url, body))
            log.write(" headers were {}\n".format(headers))
            log.write(" response was {}\n".format(data))
        return data

    res = msg()
    res.ParseFromString(data)
    if log:
        log.write(
            "probobuf request with host {}, method {}, url {}, body {}:\n".
            format(host, method, url, body))
        log.write(" headers were {}\n".format(headers))
        log.write(" response was {}\n".format(repr(res)))
    return res
Beispiel #6
0
def plist_request(host, method, url, body, headers):
    conn = HTTPSConnection(host)
    sock = socket.create_connection((conn.host, conn.port), conn.timeout, conn.source_address)
    conn.sock = ssl.wrap_socket(sock, conn.key_file, conn.cert_file, ssl_version=ssl.PROTOCOL_TLSv1)
    request = conn.request(method, url, body, headers)
    response = conn.getresponse()

    data = response.read()
    try:
        plist_data = plistlib.readPlistFromString(data)
    except:
        plist_data = None

    if response.status != 200:
        if plist_data is None:
            print "Request %s returned code %d" % (url, response.status)
        else:
            print "{}: {}".format(plist_data.title, plist_data.message)

        return

    return plist_data
Beispiel #7
0
def plist_request(host, method, url, body, headers, log=None):
    conn = HTTPSConnection(host)
    sock = socket.create_connection((conn.host, conn.port), conn.timeout,
                                    conn.source_address)
    conn.sock = ssl.wrap_socket(sock,
                                conn.key_file,
                                conn.cert_file,
                                ssl_version=ssl.PROTOCOL_TLSv1)
    request = conn.request(method, url, body, headers)
    response = conn.getresponse()

    data = response.read()
    try:
        plist_data = plistlib.readPlistFromString(data)
    except:
        plist_data = None

    if response.status != 200:
        if plist_data is None:
            print "Request %s returned code %d" % (url, response.status)
        else:
            print "{}: {}".format(plist_data.title, plist_data.message)

        if log:
            log.write(
                "plist request with host {}, method {}, url {}, body {}:\n".
                format(host, method, url, body))
            log.write(" headers were {}\n".format(headers))
            log.write(" response status was {}\n".format(response.status))
        return

    if log:
        log.write(
            "plist request with host {}, method {}, url {}, body {}:\n".format(
                host, method, url, body))
        log.write(" headers were {}\n".format(headers))
        log.write(" response:\n")
        log.write("{}\n".format(json.dumps(plist_data, indent=4)))
    return plist_data