Пример #1
0
    def _make_http_response(self, endpoint, request, specific_signer=None):
        body_params = request.get_body_params()
        if body_params:
            body = urlencode(body_params)
            request.set_content(body)
            request.set_content_type(format_type.APPLICATION_FORM)
        elif request.get_content(
        ) and "Content-Type" not in request.get_headers():
            request.set_content_type(format_type.APPLICATION_OCTET_STREAM)
        method = request.get_method()

        signer = self._signer if specific_signer is None else specific_signer
        header, url = signer.sign(self.__region_id, request)

        if self.get_user_agent() is not None:
            header['User-Agent'] = self.get_user_agent()
        if header is None:
            header = {}
        header['x-sdk-client'] = 'python/2.0.0'

        protocol = request.get_protocol_type()
        response = HttpResponse(endpoint,
                                url,
                                method,
                                header,
                                protocol,
                                request.get_content(),
                                self._port,
                                timeout=self._timeout)
        if body_params:
            body = urlencode(request.get_body_params())
            response.set_content(body, "utf-8", format_type.APPLICATION_FORM)
        return response
Пример #2
0
    def _make_http_response(self,
                            endpoint,
                            request,
                            read_timeout,
                            connect_timeout,
                            specific_signer=None):
        body_params = request.get_body_params()
        if body_params:
            body = urlencode(body_params)
            request.set_content(body)
            request.set_content_type(format_type.APPLICATION_FORM)
        elif request.get_content(
        ) and "Content-Type" not in request.get_headers():
            request.set_content_type(format_type.APPLICATION_OCTET_STREAM)
        method = request.get_method()

        if isinstance(request, CommonRequest):
            request.trans_to_acs_request()

        signer = self._signer if specific_signer is None else specific_signer
        header, url = signer.sign(self._region_id, request)

        base = self.user_agent_header()

        extra_agent = self.handle_extra_agent(request)
        default_agent = self.default_user_agent()
        user_agent = self.merge_user_agent(default_agent, extra_agent)

        for key, value in user_agent.items():
            base += ' %s/%s' % (key, value)
        header['User-Agent'] = base

        header['x-sdk-client'] = 'python/2.0.0'

        protocol = request.get_protocol_type()
        response = HttpResponse(endpoint,
                                url,
                                method,
                                header,
                                protocol,
                                request.get_content(),
                                self._port,
                                read_timeout=read_timeout,
                                connect_timeout=connect_timeout,
                                verify=self.get_verify())
        if body_params:
            body = urlencode(request.get_body_params())
            response.set_content(body, "utf-8", format_type.APPLICATION_FORM)
        return response
Пример #3
0
def get_url(uri_pattern, queries, path_parameters):
    url = ""
    url += replace_occupied_parameters(uri_pattern, path_parameters)
    if not url.endswith("?"):
        url += "?"
    url += urlencode(queries)
    if url.endswith("?"):
        url = url[0:(len(url) - 1)]
    return url
def get_signed_url(params, ak, secret, accept_format, method, body_params, signer=mac1):
    url_params = __refresh_sign_parameters(params, ak, accept_format, signer)
    sign_params = dict(url_params)
    sign_params.update(body_params)
    string_to_sign = __compose_string_to_sign(method, sign_params)
    signature = __get_signature(string_to_sign, secret, signer)
    url_params['Signature'] = signature
    url = '/?' + __pop_standard_urlencode(urlencode(url_params))
    return url
Пример #5
0
def __compose_string_to_sign(method, queries):
    sorted_parameters = sorted(iteritems(queries),
                               key=lambda queries: queries[0])
    sorted_query_string = __pop_standard_urlencode(
        urlencode(sorted_parameters))
    canonicalized_query_string = __pop_standard_urlencode(
        pathname2url(sorted_query_string))
    string_to_sign = method + "&%2F&" + canonicalized_query_string
    return string_to_sign
Пример #6
0
def get_encode_str(params):
    """
    transforms parameters to encoded string
    :param params: dict parameters
    :return: string
    """
    list_params = sorted(iteritems(params), key=lambda d: d[0])
    encode_str = urlencode(list_params)
    if sys.stdin.encoding is None:
        res = quote(encode_str.decode('cp936').encode('utf8'), '')
    else:
        res = quote(
            encode_str.decode(
                sys.stdin.encoding).encode('utf8'), '')
    res = res.replace("+", "%20")
    res = res.replace("*", "%2A")
    res = res.replace("%7E", "~")
    return res