Esempio n. 1
0
 def invoke(self, method, httpUrl, body=None, headers={}):
     connect = None
     try:
         uri = urlparse.urlparse(httpUrl)
         if "https".__eq__(uri.scheme):
             context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
             context.verify_flags = ssl.CERT_NONE
             connect = HTTPSConnection(uri.hostname,
                                       uri.port,
                                       context=context)
         else:
             connect = HTTPConnection(uri.hostname, uri.port)
         url = uri.path + "?" + uri.query
         connect.request(method, url=url, body=body, headers=headers)
         response = connect.getresponse()
         rHeader = {}
         for k in response.headers:
             rHeader[k.lower()] = response.headers.get(k)
         result = response.read()
         response.close()
         return True, response.status, result, rHeader
     except Exception as e:
         logging.exception("http invoke:%s", e)
         return False, 0, "", {}
     finally:
         if connect is not None:
             connect.close()
Esempio n. 2
0
def ensure_no_open_tickets(version):
    version = "v%s" % version
    conn = HTTPSConnection('api.github.com')
    try:
        log('Checking for open tickets on Github for version %s' % version)
        log('Check if node is available')
        conn.request(
            'GET',
            '/repos/elastic/elasticsearch/issues?state=open&labels=%s' %
            version,
            headers={'User-Agent': 'Elasticsearch version checker'})
        res = conn.getresponse()
        if res.status == 200:
            issues = json.loads(res.read().decode("utf-8"))
            if issues:
                urls = []
                for issue in issues:
                    urls.append(issue['html_url'])
                raise RuntimeError(
                    'Found open issues for release version %s:\n%s' %
                    (version, '\n'.join(urls)))
            else:
                log("No open issues found for version %s" % version)
        else:
            raise RuntimeError(
                'Failed to fetch issue list from Github for release version %s'
                % version)
    except socket.error as e:
        log("Failed to fetch issue list from Github for release version %s' % version - Exception: [%s]"
            % (version, e))
        #that is ok it might not be there yet
    finally:
        conn.close()
def add(request):
    instance = Person(verified=False, ip="127.0.0.1",
                      last_updated=datetime.datetime.utcfromtimestamp(0))
    form = AddPersonForm(request.POST or None, instance=instance)
    if form.is_valid():
        person = form.save(commit=False)
        ssl_context = ssl.create_default_context()
        ssl_context.check_hostname = False
        ssl_context.verify_mode = ssl.CERT_NONE
        host = resolve_location(person)
        connection = HTTPSConnection(host=host, port=8080,
                                     context=ssl_context)
        connection.request("GET", reverse("directory:info"))
        response = connection.getresponse()
        data = JSONParser().parse(response)
        cert  = connection.sock.getpeercert()
        connection.close()
        serializer = PublicPersonSerializer(person, data=data)
        cn = None
        #for key, value in cert["subject"]:
        #    if key == "commonName":
        #        cn = value
        #        break
        #if cn == person.location and serializer.is_valid():
        if serializer.is_valid():
            serializer.save()
        return HttpResponseRedirect(reverse("directory:index"))
    context = {"form": form, "section": "directory"}
    return render(request, "person_form.html", context)
Esempio n. 4
0
def get_best_server(servers):
    results = {}
    for server in servers:
        cum = []
        url = '%s/latency.txt' % os.path.dirname(server['url'])
        urlparts = urlparse(url)
        for _ in range(0, 3):
            try:
                if urlparts[0] == 'https':
                    handler = HTTPSConnection(urlparts[1])
                else:
                    handler = HTTPConnection(urlparts[1])
                headers = {'User-Agent': USER_AGENT}
                start = timeit.default_timer()
                handler.request('GET', urlparts[2], headers=headers)
                response = handler.getresponse()
                total = timeit.default_timer() - start
            except (HTTPError, URLError, socket.error):
                cum.append(3600)
                continue
            text = response.read(9)
            if int(response.status) == 200 and text == 'test=test'.encode():
                cum.append(total)
            else:
                cum.append(3600)
            handler.close()
        avg = round(sum(cum) / 6 * 1000, 3)
        results[avg] = server
    fastest = sorted(results.keys())[0]
    best = results[fastest]
    best['latency'] = fastest
    return best
Esempio n. 5
0
 def post_request(self,
                  data,
                  extra_path="",
                  via_proxy=False,
                  extra_headers=None):
     all_headers = self.get_all_headers(extra_headers)
     headers = {
         "Content-type": "application/json, charset=UTF-8",
         "Accept": "application/json,multipart/related"
     }
     if via_proxy:
         headers["Ladon-Proxy-Path"] = "%s://%s:%d%s" % (
             self.scheme.lower(), self.hostname, self.port, self.path)
     if self.scheme.lower() == 'https':
         conn = HTTPSConnection(self.hostname, self.port)
     else:
         conn = HTTPConnection(self.hostname, self.port)
     req_path = self.path + '/' + extra_path
     if all_headers:
         headers.update(all_headers)
     if req_path.endswith('/description/'):
         print("GET")
         conn.request("GET", req_path, data, headers)
     else:
         conn.request("POST", req_path, data, headers)
     jsonwsp_response = self.parse_response(conn.getresponse())
     conn.close()
     return jsonwsp_response
Esempio n. 6
0
    def _request(self, request):
        if self.useHttps:
            conn = HTTPSConnection(self.host, timeout=self.requestTimeout)
        else:
            conn = HTTPConnection(self.host, timeout=self.requestTimeout)

        if self.requestMethodGet:
            conn.request('GET',
                         self.apiPath + "?" + urlencode({'request': request}))
            response = conn.getresponse().read()
            conn.close()
        else:
            headers = {
                'Content-type': "application/x-www-form-urlencoded",
                'Accept': "text/xml"
            }
            conn.request('POST', self.apiPath, urlencode({'request': request}),
                         headers)
            response = conn.getresponse().read()
            conn.close()

            # Parse xml
            try:
                tree = ElementTree.fromstring(response)
            except:
                self.status = YastStatus.LIB_XML_PARSE_ERROR
                raise Exception("Error parsing response from Yast:\n" +
                                response)

        return tree
def check_maintainers(overlays: Iterator[Overlay]) -> Iterator[Overlay]:
    try:
        client = HTTPSConnection('bugs.gentoo.org')
        for m in overlays:
            m.check_details(client)
    finally:
        client.close()
Esempio n. 8
0
	def post_mp_request(self,data,files,extra_path=""):
		# Create the multipart request body
		buffer_fname = tempfile.mktemp()
		buffer_fp = open(buffer_fname,'wb')
		mpw = MultiPartWriter(buffer_fp)
		mpw.add_attachment(data.encode('utf-8'),'application/json, charset=UTF-8','body')
		for cid,fp in files.items():
			mpw.add_attachment(fp,'application/octet-stream',cid)
		mpw.done()
		buffer_fp.close()
		headers = {
			"Content-type": b'multipart/related; boundary=' + mpw.boundary,
			"Accept": b'application/json,multipart/related'}
		if self.scheme.lower()=='https':
			conn = HTTPSConnection(self.hostname,self.port)
		else:
			conn = HTTPConnection(self.hostname,self.port)
		req_path = self.path + '/' + extra_path
		buffer_fp = open(buffer_fname,'rb')
		conn.request("POST", req_path, buffer_fp, headers)
		buffer_fp.close()
		jsonwsp_response = self.parse_response(conn.getresponse())
		conn.close()
		os.unlink(buffer_fname)
		return jsonwsp_response
Esempio n. 9
0
def _is_online(domain, sub_path, response_status, response_reason):
    conn = HTTPSConnection(domain, timeout=1)
    conn.request("HEAD", sub_path)
    response = conn.getresponse()
    conn.close()

    return (response.status == response_status) and (response.reason == response_reason)
Esempio n. 10
0
def ping_url(protocol, url):
    url = to_string(url)
    protocol = to_string(protocol).lower()

    url_parts = url.split('/', 1)
    host = url_parts[0]
    if len(url_parts) == 1:
        path = '/'
    else:
        path = '/%s' % url_parts[1]

    if protocol == 'https':
        connection = HTTPSConnection(host)
    elif protocol == 'http':
        connection = HTTPConnection(host)
    else:
        raise ValueError('url', 'Invalid protocol %s. Use only http or https.' % protocol)

    valid_url = False
    try:
        connection.request('HEAD', path)
        response = connection.getresponse()
    except Exception:
        pass
    else:
        if response.status != 404:
            valid_url = True
    finally:
        connection.close()
        return valid_url
Esempio n. 11
0
 def open(self, data):
     if data["scheme"] == "https":
         conn = HTTPSConnection(data["netloc"],
                                timeout=self.Parent.Configs.timeout)
     else:
         conn = HTTPConnection(data["netloc"],
                               timeout=self.Parent.Configs.timeout)
     try:
         conn.request("GET", data["path"], "", data["headers"])
     except:
         return False
     try:
         response = conn.getresponse()
         output = {
             "status": response.status,
             "reason": response.reason,
             "data": response.read(),
             "headers": response.getheaders()
         }
         #Gzip error fix
         for header in output['headers']:
             if header[0] == 'Content-Encoding' and header[1] == 'gzip':
                 output['data'] = GzipFile(
                     fileobj=BytesIO(output['data'])).read()
                 output['headers'].remove(header)
     except:
         output = False
     conn.close()
     return output
Esempio n. 12
0
    def wrap(self, content):
        self._LOGGING_ and self.logger.debug(
            f"[{self.name}] wrap: {len(content)} bytes")
        packedSotp = self.packSotp(content)

        if self.proxy:
            proxy_ip, proxy_port = self.proxy.split(":")

            if self.ssl:
                conn = HTTPSConnection(self.hostname,
                                       self.port,
                                       timeout=self.timeout,
                                       context=_create_unverified_context())
            else:
                conn = HTTPConnection(proxy_ip, proxy_port, self.timeout)

            conn.set_tunnel(self.hostname, self.port)
        else:
            if self.ssl:
                conn = HTTPSConnection(self.hostname,
                                       self.port,
                                       timeout=self.timeout,
                                       context=_create_unverified_context())
            else:
                conn = HTTPConnection(self.hostname, self.port, self.timeout)

        data_response, code_response = self.dispatchByMethod(conn, packedSotp)
        conn.close()
        self.inbox.put(self.messageToWrapper((data_response, code_response)))
Esempio n. 13
0
 def post_mp_request(self, data, files, extra_path="", extra_headers={}):
     # Create the multipart request body
     buffer_fname = tempfile.mktemp()
     buffer_fp = open(buffer_fname, 'wb')
     mpw = MultiPartWriter(buffer_fp)
     mpw.add_attachment(data.encode('utf-8'),
                        'application/json, charset=UTF-8', 'body')
     for cid, fp in files.items():
         mpw.add_attachment(fp, 'application/octet-stream', cid)
     mpw.done()
     buffer_fp.close()
     headers = {
         "Content-type": b'multipart/related; boundary=' + mpw.boundary,
         "Accept": b'application/json,multipart/related'
     }
     if self.scheme.lower() == 'https':
         conn = HTTPSConnection(self.hostname, self.port)
     else:
         conn = HTTPConnection(self.hostname, self.port)
     req_path = self.path + '/' + extra_path
     buffer_fp = open(buffer_fname, 'rb')
     headers.update(extra_headers)
     conn.request("POST", req_path, buffer_fp, headers)
     buffer_fp.close()
     jsonwsp_response = self.parse_response(conn.getresponse())
     conn.close()
     os.unlink(buffer_fname)
     return jsonwsp_response
Esempio n. 14
0
    def get(self):
        connection = HTTPSConnection(
            self.host) if self.https else HTTPConnection(self.host)
        headers = dict()

        if self.username or self.password:
            credentials = "{0}:{1}".format(self.username, self.password)
            b64credentials = b64encode(
                credentials.encode('utf8')).decode("ascii")
            headers = {'Authorization': 'Basic {}'.format(b64credentials)}

        try:
            connection.request('GET', '/values', headers=headers)
            response = connection.getresponse()
            body = response.read().decode()
            if 400 <= response.code < 500:
                raise PilightClientError('Request rejected by pilight server',
                                         response.code, body)
            elif 500 <= response.code < 600:
                raise PilightClientError('Connection to pilight server failed',
                                         response.code, body)
            else:
                return self.__process_response(body)

        except ConnectionError as e:
            raise PilightConnectionError(
                "Unable to connect to pilight server: " + str(e))

        finally:
            connection.close()
Esempio n. 15
0
    def get_new_cases_day(countries):
        # request cases from API, limits to 200 countries, may need to be increased in certain cases
        client = HTTPSConnection("api.coronatracker.com")
        client.request("GET", "/v3/analytics/dailyNewStats?limit=200", '', {})
        response = client.getresponse()
        response = response.read().decode("utf-8")
        client.close()

        # transform response to list, API responds with ordered list by case numbers
        parsed_json = loads(response, object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))
        top_five = []
        for i in range(0, 5 - len(countries)):
            top_five.append((parsed_json[i].country, parsed_json[i].daily_cases))

        # always include requested countries, otherwise use top 5 in # of cases
        counter = 0
        for country in countries:
            if counter == 5:
                break
            obj = {obj for obj in parsed_json if obj.country == country}.pop()
            top_five.append((obj.country, obj.daily_cases))
            counter += 1

        # sort before returning
        return sorted(top_five, reverse=True, key=lambda tup: tup[1])
Esempio n. 16
0
def get2(url, username, password, user_agent=''):
    """

    """

    urlparse_result = urlparse(url)

    connection = HTTPSConnection(urlparse_result.netloc)

    auth_encode = base64.b64encode(
        bytes('{}:{}'.format(username, password), 'ascii'))

    headers = {
        'User-Agent': user_agent,
        'Authorization': 'Basic {}'.format(auth_encode.decode('utf-8')),
    }

    try:
        connection.request('GET', urlparse_result.path, headers=headers)
        response = connection.getresponse()
        content = response.read()
    except Exception:
        raise
    else:
        content = content.decode('utf-8')
        return json.loads(content)
    finally:
        response.close()
        connection.close()
Esempio n. 17
0
    def __request_google_translate__(self,targetLang='es'):
        '''
        Request Google Translate REST API
        '''

        sourceText = self.text
        sourceLang = self.lang
        
        request = {'q': sourceText, 'target': targetLang,  'format': 'text'}
        if sourceLang is not None:
            request['source'] = sourceLang
        
        data=json.dumps(request)
        
        conn= HTTPSConnection('translation.googleapis.com')
        conn.request('POST','/language/translate/v2?key=%s' % GOOGLE_CLOUD_API_KEY, data, {'Content-Type': 'application/json'})
        response = conn.getresponse()
        
        data = response.read()
        data = json.loads(data)
        conn.close()
            
        if response.status == 200:
            data = data['data']['translations'][0]
            return data
        else:
            raise Exception('Request failed. Message: ' + data['error']['message'])
    def get_yandex_translate(self, searching_text, to_language):
        try:
            quoted_text = quote(u"" + searching_text + "")
            req = '/api/v1.5/tr.json/translate?' \
                  'key=trnsl.1.1.20150629T151613Z.82119cbb3415f490.ba44aa922a8b28e549144e0e2fa6249c7508358e' \
                  '&text=' + quoted_text \
                  + "&lang=" + to_language \
                  + '&options=1'

            conn = HTTPSConnection('translate.yandex.net')
            conn.request("GET", req)
            rez = conn.getresponse()
            data = rez.read()
            conn.close()

            if rez.status == 200:
                ddata = data.decode("utf-8")
                j = simplejson.loads(ddata, )
                tr_text = ''.join(j['text'])
                print(tr_text)
                return tr_text
            else:
                print("Something is wrong: " + str(rez.status) + " status code")
                print(data)

        except HTTPException as err:
            print(err)
Esempio n. 19
0
 def post_xml(self, xml, url):
     conn = HTTPSConnection(url)
     conn.request("POST", '/pay/unifiedorder', xml)
     response = conn.getresponse()
     response_str = response.read()
     conn.close()
     return response_str
Esempio n. 20
0
    def __request_google_vision__(self, action='LABEL_DETECTION', n=1):
        '''
        Request Google Cloud Vision REST API to perform provided action
        '''
        # Format header and data for the request
        b64 = base64.b64encode(self.data).decode('UTF-8')
        content_json_obj = {'content': b64}
        feature_json_obj = {'type': action, 'maxResults': n}

        request = {'features': feature_json_obj, 'image': content_json_obj}
        data = json.dumps({'requests': request})

        # Perform request and extract response
        conn = HTTPSConnection('vision.googleapis.com')
        conn.request('POST',
                     '/v1/images:annotate?key=%s' % GOOGLE_CLOUD_API_KEY, data,
                     {'Content-Type': 'application/json'})
        response = conn.getresponse()

        data = response.read()
        data = json.loads(data)
        conn.close()

        if response.status == 200:
            return data
        else:
            raise Exception('Request failed. Message: ' +
                            data['error']['message'])
Esempio n. 21
0
    def do_PUT(self):
        # retrieve the path from the HTTP request
        path = self.path
        # retrieve the headers from the HTTP request
        headers = self.headers
        #print("PATH: " + path)
        # retrieve the body from the HTTP request
        body = ""
        if (self.headers.get('content-length') != None):
            datalen = int(self.headers.get('content-length'))
            body = self.rfile.read(datalen)
        #print("This is the body for " + path)
        #print(body)
        # send an HTTP request to another server and get the response
        conn = HTTPSConnection(self.headers.get('host'))
        method = 'PUT'
        conn.request(method, path, body, headers)
        # and get the response back
        res = conn.getresponse()
        responseBody = res.read()
        conn.close()

        # set HTTP response status code and body
        self.send_response(res.status, responseBody)
        # set HTTP reponse headers
        for i in range(0, len(res.getheaders())):
            self.send_header(res.getheaders()[i][0], res.getheaders()[i][1])
        self.end_headers()
Esempio n. 22
0
    def _send_post(self, url, payload={}):
        payload = copy.copy(payload) # avoid modifying the original dict

        # add some stuff to the payload
        payload['nonce'] = int(time.time()*1e6)

        body = urllib.parse.urlencode(payload).encode() # convert to bytes object

        sig = hmac.new(base64.b64decode(self._secret), body, hashlib.sha512).digest()
        sig_b64 = base64.b64encode(sig)

        headers = {
            'bitfloor-key': self._key,
            'bitfloor-sign': sig_b64,
            'bitfloor-passphrase': self._passphrase,
            'bitfloor-version': self._api_version,
            'Content-Type': 'application/x-www-form-urlencoded',
            'Content-Length': len(body)
        }

        conn = HTTPConn(self._host, self._order_port)
        conn.request("POST", url, body, headers)
        resp = conn.getresponse()
        s = resp.read().decode() # comes as a bytes object, decode to a string
        conn.close()
        return json.loads(s)
Esempio n. 23
0
def ensure_no_open_tickets(version):
    version = "v%s" % version
    conn = HTTPSConnection("api.github.com")
    try:
        log("Checking for open tickets on Github for version %s" % version)
        log("Check if node is available")
        conn.request(
            "GET",
            "/repos/elasticsearch/elasticsearch/issues?state=open&labels=%s" % version,
            headers={"User-Agent": "Elasticsearch version checker"},
        )
        res = conn.getresponse()
        if res.status == 200:
            issues = json.loads(res.read().decode("utf-8"))
            if issues:
                urls = []
                for issue in issues:
                    urls.append(issue["url"])
                raise RuntimeError("Found open issues  for release version %s see - %s" % (version, urls))
            else:
                log("No open issues found for version %s" % version)
        else:
            raise RuntimeError("Failed to fetch issue list from Github for release version %s" % version)
    except socket.error as e:
        log("Failed to fetch issue list from Github for release version %s' % version - Exception: [%s]" % (version, e))
        # that is ok it might not be there yet
    finally:
        conn.close()
def get_temperature():
    # Open a connection to the domain.
    conn = HTTPSConnection("forecast.weather.gov")

    # Make a request to load the forecast webpage.
    conn.request("GET",
                 "/MapClick.php?lat=42.5067&lon=-89.0379",
                 headers={"User-agent": "educational"})

    # Get the response from the request.
    resp = conn.getresponse()

    # Read the content of the request payload.
    body = resp.read()

    # Close the connection to cleanup resources.
    conn.close()

    # Parse the webpage's HTML.
    soup = BeautifulSoup(body, "html.parser")

    # Find the HTML Element with the temperature value.
    elm = soup.find("p", class_="myforecast-current-lrg")

    # Return the text value of the temperature Element.
    return elm.text
Esempio n. 25
0
    def do_GET(self):
        # retrieve the path from the HTTP request
        path = self.path
        # retrieve the headers from the HTTP request
        headers = self.headers
        # retrieve the body from the HTTP request
        body = None
        
        if self.headers.get('content-length'):
            body = self.rfile.read(int(self.headers.get('content-length')))

        # send an HTTP request to another server and get the response
        conn = HTTPSConnection(headers['host'])
        method = 'GET'
        conn.request(method, path, body, headers)
        # and get the response back 
        res = conn.getresponse()
        conn.close()

        # set HTTP response status code and body
        self.send_response(201, 'Welcome to DarkLab')
        # set HTTP reponse headers
        self.send_header('Content-type','text/html')
        self.end_headers()

        return
Esempio n. 26
0
def make_request(url, method='GET', params=None, body=None, headers=None):
    parse_result = urlparse(url)
    protocol = parse_result.scheme
    hostname = parse_result.netloc
    port = None
    if ':' in hostname:
        hostname, port = hostname.split(':')
    if protocol == 'https':
        context = ssl.SSLContext()
        conn = HTTPSConnection(hostname, port, context=context)
    elif protocol == 'http':
        conn = HTTPConnection(hostname, port)
    else:
        raise Exception('Unsupported protocol {}'.format(protocol))
    if headers is None:
        headers = {}
    if method == 'POST':
        if 'Content-Type' not in headers:
            headers['Content-Type'] = 'application/x-www-form-urlencoded'
        if params and not body:
            body = urlencode(params)
    request_url = f'{parse_result.path}?{parse_result.query}'
    conn.request(method, request_url, body, headers)
    response = conn.getresponse()
    data = response.read()
    conn.close()
    return data
def submit_xml_request(xml_request):
    """Submit the XML request to the MAST archive.

    Parameters
    ----------
    xml_request : string
        The request XML string.

    Returns
    -------
    submission_results : httplib object
        The XML request submission results.
    """

    user = os.environ.get("USER")
    home = os.environ.get("HOME")

    signer = SignStsciRequest()
    request_xml_str = signer.signRequest('{0}/.ssh/privkey.pem'.format(home), xml_request)
    params = urlencode({
        'dadshost': get_settings()['dads_host'],
        'dadsport': 4703,
        'mission':'HST',
        'request': request_xml_str})
    headers = {"Accept": "text/html", "User-Agent":"{0}PythonScript".format(user)}
    req = HTTPSConnection(get_settings()['archive'])
    req.request("POST", "/cgi-bin/dads.cgi", params, headers)
    response = req.getresponse().read()
    req.close()

    return response
Esempio n. 28
0
class GoogleDictionary():
    def __init__(self):
        self.host = 'translate.google.com'
        self.connection = HTTPSConnection(self.host)
        self.empty_comma = re.compile(r',(?=,)')

    def lookup(self, lookedup_word, src_language='ru', dst_language='en'):
        secret_token = get_current_token(lookedup_word)
        url = self.format_lookup_url(lookedup_word, secret_token, src_language, dst_language)
        self.connection.request("GET", url)
        response = self.connection.getresponse()
        response_content = response.read().decode('utf8')
        #json_obj = json.loads(self.empty_comma.subn('', response_content)[0].replace(u'\xA0', u' ').replace('[,', '[1,'))
        response_content = response_content.replace(',,', ',"",');
        response_content = response_content.replace(',,', ',"",');
        response_content = response_content.replace('[,', '["",');
        response_content = response_content.replace(',]', ',""]');
        response_content = response_content.replace('\xA0', ' ')
        #fixed_content = self.empty_comma.subn('', response_content)[0].replace('\xA0', ' ')

        return json.loads(response_content)

    def format_lookup_url(self, word, secret_token, src_language, dst_language):
        url = '/translate_a/single?client=t&sl={0}&tl={1}&hl=en&dt=at&dt=bd&dt=ex&' \
              'dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&otf=2&' \
              'rom=1&ssel=3&tsel=3&kc=1&tk={2}&q={3}'.format(src_language, dst_language, secret_token, quote(word))
        return url

    def unpack(self, json_obj):
        window_content = json_obj[0]
        if len(json_obj) > 1:
            article_by_pos = json_obj[1]
            defs = {}
            for article in article_by_pos:
                pos = article[0]
                definition = article[1]
                defs[pos] = definition
        else:
            defs = { 'unk', window_content[0][0] }

        return defs

    def get_pronunciation_url(self, word, language):
        secret_token = get_current_token(word)
        url_sound ="https://translate.google.com/translate_tts?ie=UTF-8&client=t&tk={0}&tl={1}&q={2}". \
                            format(secret_token, language, quote(word))
        return url_sound

    def get_sound_file(self, word, language):
        url_sound = self.get_pronunciation_url(word, language)
        try:
            self.connection.request("GET", url_sound)
        except ImproperConnectionState:        # reconnect and try again
            self.connection.close()
            self.connection.connect()
            self.connection.request("GET", url_sound)
        response = self.connection.getresponse()
        content_type = response.headers['Content-Type']
        return response.read(), content_type
Esempio n. 29
0
def _is_online(domain, sub_path, response_status, response_reason):
    conn = HTTPSConnection(domain, timeout=1)
    conn.request("HEAD", sub_path)
    response = conn.getresponse()
    conn.close()

    return (response.status == response_status) and (response.reason
                                                     == response_reason)
Esempio n. 30
0
def sync_customers():
    timestamp, _ = UkumpGlobal.objects.get_or_create(
        key='agilecrm_customer_sync_timestamp', defaults={'value': 0})
    cursor = None
    rhs = timestamp.value

    while True:
        body = {
            'page_size':
            '25',
            'global_sort_key':
            'updated_time',
            'filterJson':
            json.dumps({
                'rules': [{
                    'LHS': 'updated_time',
                    'CONDITION': 'AFTER',
                    'RHS': rhs * 1000 - 86400000
                }],
                'contact_type':
                'PERSON'
            })
        }
        if cursor:
            body['cursor'] = cursor
            cursor = None

        conn = HTTPSConnection(DOMAIN)
        conn.request('POST',
                     '/dev/api/filters/filter/dynamic-filter',
                     body=urlencode(body),
                     headers=REQUEST_HEADER)
        resp = conn.getresponse()

        assert resp.status == 200
        bbody = resp.read()
        customers_doc = json.loads(bbody.decode())

        c = 0
        if customers_doc:
            for doc in customers_doc:
                customer = Customer.objects.filter(
                    profile__agilecrm=doc['id']).order_by('id').first()
                if customer:
                    c += 1
                    update_customer(customer, doc)
                timestamp.value = max(
                    timestamp.value,
                    max(doc['updated_time'], doc['created_time']))
                cursor = doc.get('cursor')
            timestamp.save()
            time.sleep(1.0)

        if not cursor:
            break

    conn.close()
    return c
Esempio n. 31
0
 def _send_get(self, url, payload={}):
     body = urllib.parse.urlencode(payload)
     conn = HTTPConn(self._host, self._data_port)
     conn.request("GET", url, body)
     resp = conn.getresponse()
     s = resp.read().decode() # comes as a bytes-type object, decode to string
     conn.close()
     print(s)
     return json.loads(s)
Esempio n. 32
0
class Telegram:
    def __init__(self, token):
        url = 'https://api.telegram.org/bot'
        self.__url = urlparse('{}{}/'.format(url, token))
        self.__web = HTTPSConnection(self.__url.netloc)


    def __enter__(self):
        return self


    def __send_req(self, target, method='GET'):
        self.__web.connect()
        self.__web.request(method, urljoin(self.__url.path, target))


    def get_botname(self):
        'Return: json data.'
        self.__send_req('getMe')
        data = Request(self.__web)
        return data.data


    def get_resp(self, limit=20):
        'Return: request object.'
        self.__send_req('getUpdates?' + 'limit={}'.format(limit))
        return Request(self.__web)


    def msg_send(self, chat_id, message):
        'Return: request data.'
        data = urlencode({'chat_id': chat_id, 'text': message})
        self.__send_req('sendMessage?' + data, 'POST')
        data = Request(self.__web)
        return data.data


    def msg_delete(self, chat_id, message_id):
        'Return: request data.'
        data = urlencode({'chat_id': chat_id, 'message_id': message_id})
        self.__send_req('deleteMessage?' + data, 'POST')
        data = Request(self.__web)
        return data.data


    def __call__(self):
        'Call get_resp()'
        return self.get_resp()


    def __del__(self):
        self.__web.close()


    def __exit__(self, *exec_info):
        self.__del__()
Esempio n. 33
0
class FrankaAPI:  #
    def __init__(self, hostname, user, password):  #构造函数,进行类变量初始化,输入主机名,账户名,密码
        self._hostname = hostname  #主机名
        self._user = user  #web网页账户
        self._password = password  #密码

    def __enter__(self):
        self._client = HTTPSConnection(
            self._hostname, context=ssl._create_unverified_context())
        self._client.connect()  #链接
        self._client.request('POST',
                             '/admin/api/login',
                             body=json.dumps({
                                 'login':
                                 self._user,
                                 'password':
                                 encode_password(self._user, self._password)
                             }),
                             headers={'content-type': 'application/json'})
        self._token = self._client.getresponse().read().decode('utf8')
        #print(self._token)
        return self

    def __exit__(self, type, value, traceback):
        self._client.close()

    def start_task(self, task):
        self._client.request('POST',
                             '/desk/api/execution',
                             body='id=%s' % task,
                             headers={
                                 'content-type':
                                 'application/x-www-form-urlencoded',
                                 'Cookie': 'authorization=%s' % self._token
                             })
        return self._client.getresponse().read()

    def open_brakes(self):  #打开机械臂锁
        self._client.request('POST',
                             '/desk/api/robot/open-brakes',
                             headers={
                                 'content-type':
                                 'application/x-www-form-urlencoded',
                                 'Cookie': 'authorization=%s' % self._token
                             })
        return self._client.getresponse().read()

    def close_brakes(self):  #关闭机械臂锁
        self._client.request('POST',
                             '/desk/api/robot/close-brakes',
                             headers={
                                 'content-type':
                                 'application/x-www-form-urlencoded',
                                 'Cookie': 'authorization=%s' % self._token
                             })
        return self._client.getresponse().read()
Esempio n. 34
0
 def request(self, method, url, body=None):
     connection = HTTPSConnection('saucelabs.com')
     connection.request(method, url, body, headers=self.headers)
     response = connection.getresponse()
     json_data = response.read()
     connection.close()
     if response.status != 200:
         raise Exception('%s: %s.\nSauce Status NOT OK' %
                         (response.status, response.reason))
     return json_data
Esempio n. 35
0
 def request(self, method, url, body=None):
     connection = HTTPSConnection('saucelabs.com')
     connection.request(method, url, body, headers=self.headers)
     response = connection.getresponse()
     json_data = response.read()
     connection.close()
     if response.status != 200:
         raise Exception('%s: %s.\nSauce Status NOT OK' %
                         (response.status, response.reason))
     return json_data
Esempio n. 36
0
class MyHttpCtxManagerClass:
    def __init__(self, host):
        self.host = host
        self.connection = HTTPSConnection(self.host)

    def __enter__(self):
        self.connection.connect()
        return self.connection

    def __exit__(self, *args):
        self.connection.close()
Esempio n. 37
0
def check_updated_certs(_address, _port, certhashlist, newhash=None, timeout=config.default_timeout, connect_timeout=config.connect_timeout, traversefunc=None):
    update_list = []
    if None in [_address, _port]:
        logging.error("address or port empty")
        return None
    addr, _port = url_to_ipv6(_address, _port)
    cont = default_sslcont()
    con = HTTPSConnection(addr, _port, context=cont, timeout=connect_timeout)
    try:
        con.connect()
    except (ConnectionRefusedError, socket.timeout):
        if not traversefunc:
            logging.warning("Connection failed")
            return None
        # try_traverse does not work here, scnreqest creates loop
        con.sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
        con.sock.bind(('', 0))
        traversefunc(("", con.sock.getsockname()[1]))
        con.sock.settimeout(connect_timeout)
        for count in range(0, config.traverse_retries):
            try:
                con.sock.connect((addr, _port))
                break
            except Exception:
                pass
        else:
            logging.warning("traversal failed")
            return None
    con.sock.settimeout(timeout)
    oldhash = dhash(ssl.DER_cert_to_PEM_cert(con.sock.getpeercert(True)).strip().rstrip())
    if newhash and newhash != oldhash:
        return None
    oldsslcont = con.sock.context
    for _hash, _security in certhashlist:
        con.request("POST", "/usebroken/{hash}".format(hash=_hash), headers=cert_update_header)
        con.sock = con.sock.unwrap()
        con.sock = cont.wrap_socket(con.sock, server_side=False)
        con.sock.do_handshake()
        brokensslcert = ssl.DER_cert_to_PEM_cert(con.sock.getpeercert(True)).strip().rstrip()
        con.sock = con.sock.unwrap()
        # without next line the connection would be unencrypted now
        con.sock = oldsslcont.wrap_socket(con.sock, server_side=False)
        # con.sock.do_handshake()
        ret = con.getresponse()
        if ret.status != 200:
            logging.info("checking cert failed, code: %s, reason: %s", ret.status, ret.reason)
            continue
        if con.sock and oldhash != dhash(ssl.DER_cert_to_PEM_cert(con.sock.getpeercert(True)).strip().rstrip()):
            logging.error("certificate switch detected, stop checking")
            break
        if dhash(brokensslcert) == _hash:
            update_list.append((_hash, _security))
    con.close()
    return update_list
Esempio n. 38
0
    def __init__(self, vidID):
        conn = HTTPSConnection("www.youtube.com")

        conn.request("GET", "/watch?v={}".format(vidID))

        stream = conn.getresponse()
        if stream.getheader("Content-Encoding") is not None:
            stream = GzipFile(fileobj=stream)
        self.data = str(stream.read(), "utf-8")

        conn.close()
Esempio n. 39
0
def check_maintainers(
        maintainers: Iterator[Maintainer]) -> Iterator[Maintainer]:
    try:
        client = HTTPSConnection('bugs.gentoo.org')
        for m in maintainers:
            if m.check_details(client):
                print(f'\033[92m\u2713 {m.name} <{m.email}>\033[0m')
            else:
                print(f'\033[91m\u2717 {m.name} <{m.email}>\033[0m')
                yield m
    finally:
        client.close()
 def __http_post_request(self, json_msg):
     try:
         headers = {"Content-type": "application/json"}
         connection = HTTPSConnection(self.__hook_URL)
         connection.request("POST", self.__hook_context, json_msg, headers)
         response = connection.getresponse()
         if response.status != 200:
             raise AttributeError(f"Response body: {response.read()}")
     except Exception as e:
         raise e
     finally:
         connection.close()
Esempio n. 41
0
 def request(self, path, method, data=None):
     connection = HTTPSConnection(self.domain)
     try:
         base64_bytes = b64encode(
             ("%s:%s" % (self.username, self.password)).encode("ascii")
         ).decode("ascii")
         headers = {'Authorization': 'Basic %s' % base64_bytes, 'Content-Encoding': 'gzip'}
         connection.request(method, path, headers=headers, body=data)
         response = connection.getresponse()
         return loads(response.read().decode())
     finally:
         connection.close()
Esempio n. 42
0
 def scrape(self):
     '''Scrapes myPurdue for the course's information.'''
     sock = HTTPSConnection(self.domain)
     sock.request('GET', self.path)
     try:
         self.html = sock.getresponse().read()
         self.html = self.html.decode()
     except:
         print('Error connecting to myPurdue:')
         raise
     finally:
         sock.close()
Esempio n. 43
0
 def emit(self, record):
     message = self.format(record)
     if record.levelno >= self.mention_level and self.mention_level is not None:
         message = "<@&{0}> {1}".format(self.mention_id, message)
     url = self.urls[record.levelno]
     body = json.dumps({"content": message})
     headers = {'Content-Type': 'application/json'}
     con = HTTPSConnection('discordapp.com')
     con.request('POST', url, body, headers)
     # Tell the server we're done with the request
     con.getresponse()
     con.close()
Esempio n. 44
0
    def getReport(self, reportFormat, options=None, user=None, hash=None):
        self.status = YastStatus.SUCCESS
        try:
            user, hash = self._verifyLogin(user, hash)

            # Request report
            resp = self._request(
                '<request req="report.getReport">' + '<user><![CDATA[' + user +
                ']]></user>' + '<hash><![CDATA[' + hash + ']]></hash>' +
                '<reportFormat>' + reportFormat + '</reportFormat>' +
                ('' if options == None else
                 ('<timeFrom>' + str(options['timeFrom']) +
                  '</timeFrom>' if 'timeFrom' in options else '') +
                 ('<timeTo>' + str(options['timeTo']) +
                  '</timeTo>' if 'timeTo' in options else '') +
                 ('<typeId>' + str(options['typeId']) +
                  '</typeId>' if 'typeId' in options else '') +
                 ('<parentId>' + str(options['parentId']) +
                  '</parentId>' if 'parentId' in options else '') +
                 ('<groupBy><![CDATA[' + options['groupBy'] +
                  ']]></groupBy>' if 'groupBy' in options else '') +
                 ('<constraints><![CDATA[' + options['constraints'] +
                  ']]></constraints>' if 'constraints' in options else '')) +
                '</request>')

            self._verifyStatus(resp)
            fields = self._getXmlFields(resp)

            # Download
            if self.useHttps:
                conn = HTTPSConnection(self.host)
            else:
                conn = HTTPConnection(self.host)

            conn.request(
                'GET',
                self.dlPath + "?" + urlencode({
                    'type': 'report',
                    'id': fields['reportId'],
                    'hash': fields['reportHash'],
                    'user': user,
                    'userhash': hash
                }))
            file = conn.getresponse().read()
            conn.close()
            return file

        except:
            if self.status == YastStatus.SUCCESS:
                self.status = YastStatus.LIB_EXCEPTION
            if self.propagateExceptions:
                raise
            return False
Esempio n. 45
0
    def __init__(self, video_id):
        self.video_id = video_id
        conn = HTTPSConnection("www.youtube.com")

        conn.request("GET", "/watch?v={}".format(video_id))

        stream = conn.getresponse()
        encoding = stream.getheader("Content-Encoding")
        if encoding is not None and encoding.lower().find("gzip") > -1:
            stream = GzipFile(fileobj=stream)
        self.data = str(stream.read(), "utf-8")

        conn.close()
def getFieldData(authorization):
    authstring = 'Bearer ' + authorization
    connection = HTTPSConnection('hackillinois.climate.com')
    headers = {'Authorization': authstring,
               'Content-type': 'application/json',
               'Accept': 'application/json'}

    connection.request('GET', '/api/fields?includeBoundary=true', headers=headers)
    response = connection.getresponse()
    data = response.read().decode()
    print(data)
    connection.close()
    return json.loads(data)
Esempio n. 47
0
	def post_request(self,data,extra_path=""):
		headers = {
			"Content-type": "application/json, charset=UTF-8",
			"Accept": "application/json,multipart/related" }
		if self.scheme.lower()=='https':
			conn = HTTPSConnection(self.hostname,self.port)
		else:
			conn = HTTPConnection(self.hostname,self.port)
		req_path = self.path + '/' + extra_path
		conn.request("POST", req_path, data, headers)
		jsonwsp_response = self.parse_response(conn.getresponse())
		conn.close()
		return jsonwsp_response
def request(method, url, timeout=None):
    scheme, host, path, params, query, fragment = urlparse(url)
    connection = None
    try:
        if scheme == 'https':
            connection = HTTPSConnection(host, timeout=timeout)
        else:
            connection = HTTPConnection(host, timeout=timeout)

        connection.request(method, url)
        return connection.getresponse()
    finally:
        if connection:
            connection.close()
Esempio n. 49
0
    def fetchFile(self, server, path):
        "Fetch file using httplib module."
    
        print("downloading http://%s%s" % (server, path))
            
        req = HTTPSConnection(server)
        req.putrequest('GET', path)
        req.putheader('Host', server)
        req.putheader('Accept', 'text/svg')
        req.endheaders()
        r1 = req.getresponse()
        data = r1.read().decode('utf-8')
        req.close()

        return data
Esempio n. 50
0
	def open(self, data):
		if data["scheme"] == "https":
			conn = HTTPSConnection(data["netloc"], timeout=self.Parent.Configs.timeout)
		else:
			conn = HTTPConnection(data["netloc"], timeout=self.Parent.Configs.timeout)
		try:
			conn.request("GET", data["path"], "", data["headers"])
		except:
			return False
		try:
			response = conn.getresponse()
			output = {"status":response.status, "reason":response.reason, "data":response.read(), "headers":response.getheaders()}
		except:
			output = False
		conn.close()
		return output
def getUserId(authorization, email):
    authstring = 'Bearer ' + authorization
    connection = HTTPSConnection('hackillinois.climate.com')
    headers = {'Authorization': authstring,
               'Content-type': 'application/json',
               'Accept': 'application/json'}
    #email = email.replace("@", 
    connection.request('GET', '/users/details?email='+email, headers=headers)
    response = connection.getresponse()
    data = response.read().decode()
    print(data)
    connection.close()
    the_json = json.loads(data)
    if 'id' in the_json:
        return the_json['id']
    else:
        return 0
Esempio n. 52
0
def makeGetRequest(url):
	start_index = url.find("://")+3;
	stem_index = url.find("/", start_index) 
	base = url[start_index:stem_index]
	stem = url[stem_index:]
	filename = url[url.rfind("/")+1:] 
	print("base: " + base)
	print("stem: " + stem)

	h1 = HTTPSConnection(base);
	h1.request("GET", stem)
	res = h1.getresponse()


	print("res status: {0}".format(res.status))
	data = res.read();
	h1.close()
	return (data, filename);
Esempio n. 53
0
	def post_request(self,data,extra_path="",via_proxy=False,extra_headers=None):
		headers = {
			"Content-type": "application/json, charset=UTF-8",
			"Accept": "application/json,multipart/related" }
		if via_proxy:
			headers["Ladon-Proxy-Path"] = "%s://%s:%d%s" % (
				self.scheme.lower(),self.hostname,self.port,self.path)
		if self.scheme.lower()=='https':
			conn = HTTPSConnection(self.hostname,self.port)
		else:
			conn = HTTPConnection(self.hostname,self.port)
		req_path = self.path + '/' + extra_path
		if extra_headers:
			headers.update(extra_headers)
		conn.request("POST", req_path, data, headers)
		jsonwsp_response = self.parse_response(conn.getresponse())
		conn.close()
		return jsonwsp_response
Esempio n. 54
0
		def process_message(self, peer, mailfrom, rcpttos, message_data):
			p = Popen(['python', 'mailtojson.py', '-p'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
			mailtojson_stdout = p.communicate(input=bytes(message_data, 'UTF-8'))[0]
			#print(mailtojson_stdout.decode())
			mailtojson_stdout = json.loads(mailtojson_stdout.decode())
			mailtojson_stdout['_peer'] = peer;
			mailtojson_stdout['_mailfrom'] = mailfrom;
			mailtojson_stdout['_rcpttos'] = rcpttos;
			mailtojson_stdout['_smtpuser'] = authSMTP.username;
			mailtojson_stdout['_smtppass'] = authSMTP.password;
			
			conn = HTTPSConnection("www.sendsecure.org")
			headers = { "charset" : "utf-8", "Content-Type": "application/json", "User-Agent": "SendSecure/MailEncode 1.0" }
			postJson = json.dumps(mailtojson_stdout, ensure_ascii = False)
			conn.request("POST", "/smtp_post.php", postJson.encode('utf-8'), headers)
			response = conn.getresponse()
			print(response.read())
			conn.close()
Esempio n. 55
0
  def getReport(self, reportFormat, options=None, user=None, hash=None):
    self.status = YastStatus.SUCCESS
    try:
      user, hash = self._verifyLogin(user, hash)

      # Request report
      resp = self._request('<request req="report.getReport">' +
			     '<user><![CDATA[' + user + ']]></user>' +
			     '<hash><![CDATA[' + hash + ']]></hash>' +
			     '<reportFormat>' + reportFormat + '</reportFormat>' +
			     ('' if options == None else
			      ('<timeFrom>' + str(options['timeFrom']) + '</timeFrom>' if 'timeFrom' in options else '') +
			      ('<timeTo>' + str(options['timeTo']) + '</timeTo>' if 'timeTo' in options else '') +
			      ('<typeId>' + str(options['typeId']) + '</typeId>' if 'typeId' in options else '') +
			      ('<parentId>' + str(options['parentId']) + '</parentId>' if 'parentId' in options else '') +
			      ('<groupBy><![CDATA[' + options['groupBy'] + ']]></groupBy>' if 'groupBy' in options else '') +
			      ('<constraints><![CDATA[' + options['constraints'] + ']]></constraints>' if 'constraints' in options else '')) +
			     '</request>')

      self._verifyStatus(resp)
      fields = self._getXmlFields(resp)

      # Download
      if self.useHttps:
        conn = HTTPSConnection(self.host)
      else:
        conn = HTTPConnection(self.host)

      conn.request('GET', self.dlPath + "?" + urlencode({'type':     'report',
                                                         'id':       fields['reportId'],
                                                         'hash':     fields['reportHash'],
                                                         'user':     user,
                                                         'userhash': hash}))
      file = conn.getresponse().read()
      conn.close()
      return file
      
    except:
      if self.status == YastStatus.SUCCESS:
        self.status = YastStatus.LIB_EXCEPTION
      if self.propagateExceptions:
        raise
      return False
Esempio n. 56
0
def send_request(role, method, type, name, attrib, value, value_type):
    host = role.ip + ":" + role.serverport
    auth = b64encode((role.backend_name + ":" + role.backend_pass).encode()).decode()
    uri = "/" + type + ("/" + name) if name != None else "" + ("/" + attrib) if attrib != None else ""
    header = {"Authorization": "Basic " + auth}
    if value_type != None:
        header["Content-type"] = value_type
    client = HTTPSConnection(host, timeout=5)
    try:
        print("Send request: %s %s" % (host, uri))
        client.request(method, uri, value, header)
        response = client.getresponse()
        client.close()
        print("Get response: %s %s %s" % (response.status, response.reason, response.read().decode()))
        return response
    except:
        print("Send error: %s %s" % (host, uri))
        role.active = False
        return None
Esempio n. 57
0
    def connect(self, srvhost, srvport):
        self.con = ssl._create_unverified_context(protocol=ssl.PROTOCOL_TLSv1, cafile=ca_crt)
        from http.client import HTTPSConnection
        c = HTTPSConnection(srvhost, port=srvport, context=self.con)
        try:
            c.connect()
        except ConnectionRefusedError as e:
            raise ConnectException("Cannot connect to 'https://%s:%d/'. %s" % (srvhost, srvport, e))
        except:
            raise ConnectException("Connect to 'https://%s:%d/' failed. Unknown error." % (srvhost, srvport))
        finally:
            c.close()

        try:
            self.proxy = ServerProxy("https://%s:%d/" % (srvhost, srvport),
                                 context=self.con)
        except:
            raise ConnectException(
                "Connect to crtyptoTank server at 'https://%s:%d/' failed. Unknown error." % (srvhost, srvport)
            )
Esempio n. 58
0
    def delete_request(self, user_id, request_id):
        """Deletes the Request with the given ID for the given user."""
        conn = HTTPSConnection('graph.facebook.com')

        url = '/%s_%s?%s' % (
            request_id,
            user_id,
            urlencode({'access_token': self.access_token}),
        )
        conn.request('DELETE', url)
        response = conn.getresponse()
        data = response.read()

        response = _parse_json(data)
        # Raise an error if we got one, but don't not if Facebook just
        # gave us a Bool value
        if (response and isinstance(response, dict) and response.get("error")):
            raise GraphAPIError(response)

        conn.close()
Esempio n. 59
0
 def fetchFile(self, url):
     "Get content with some given URL, uncompress if needed."
 
     parsed = urlparse(url)
     conn = HTTPSConnection(parsed.netloc)
     conn.request("GET", parsed.path)
     r1 = conn.getresponse()
     if (r1.status, r1.reason) == (200, "OK"):
         data = r1.read()
         if r1.getheader("content-encoding") == "gzip":
             zbuf = io.BytesIO(data)
             zfile = gzip.GzipFile(mode="rb", fileobj=zbuf)
             data = zfile.read()
             zfile.close()
         data = data.decode('utf-8')
     else:
         data = None
     conn.close()
 
     return data
Esempio n. 60
0
    def call(self, method='', params=None):
        """ Call T411 API """
        if params is not None:
            params = urlencode(params)
        
        headers = HTTP_HEADERS
        if method != 'auth':
            headers['Authorization'] = self._token

        conn = HTTPSConnection(API_URL)
        conn.request('POST', '/%s' % method, body=params, headers=headers)
        r = conn.getresponse()
        if r.status == HTTP_OK:
            #import pdb; pdb.set_trace()
            rt = r.read()
            try:
                pass
                rt = rt.decode('utf-8')     
                conn.close()
            except:
                conn.close()
            return rt
        else:
            conn.close()
            return False