'POST\'s data to a uri using a proxy, user agents, and other settings
that where set previously.
:param uri: This is the url where to post.
:param data: A string with the data for the POST.
:see: The GET() for documentation on the other parameters
:return: An HTTPResponse object.'

def POST(self, uri, data='', headers=Headers(), grep=True, cache=False, cookies=True, error_handling=True, timeout=None, follow_redirects=None, use_basic_auth=True, use_proxy=True):

    if (not isinstance(uri, URL)):
        raise TypeError('The    uri    parameter    of    ExtendedUrllib.POST()    must    be    of    url.URL    type.')
    if (not isinstance(headers, Headers)):
        raise TypeError('The    header    parameter    of    ExtendedUrllib.POST()    must    be    of    Headers    type.')
    self.setup()
    data = str(data)
    host = uri.get_domain()
    new_connection = (True if (timeout is not None) else False)
    timeout = (self.get_timeout(host) if (timeout is None) else timeout)
    req = HTTPRequest(uri, data=data, cookies=cookies, cache=False, error_handling=error_handling, method='POST', retries=self.settings.get_max_retrys(), timeout=timeout, new_connection=new_connection, use_basic_auth=use_basic_auth, use_proxy=use_proxy)
    req = self.add_headers(req, headers)
    return self.send(req, grep=grep)
