o
    is                     @   s   d dl Z d dlZd dlmZmZ d dlmZ d dlmZ	 d dlm
Z
 eeZeej e Zee dZG dd deZdS )	    N)SessionRequest)HttpRequest)protocol_type)status_codes   c                   @   sh   e Zd Zdddi ejdddddddddfddZdd Zd	d
 Zedd Z	dd Z
dd Zdd ZdS )HttpResponse /GETNc                 C   s~   t j| ||||d d| _|tju rd| _|| _|	| _|| _d | _|
| _	|| _
|| _|| _|d u r5t | _| | || _d S )N)hosturlmethodheadersFT)r   __init___HttpResponse__ssl_enablePTHTTPS_HttpResponse__key_file_HttpResponse__cert_file_HttpResponse__port_HttpResponse__connection_HttpResponse__read_timeout_HttpResponse__connect_timeout_HttpResponse__verify_HttpResponse__sessionr   set_bodyproxy)selfr   r   r   r   protocolcontentportkey_file	cert_fileread_timeoutconnect_timeoutverifysessionr    r(   T/home/ubuntu/.local/lib/python3.10/site-packages/aliyunsdkcore/http/http_response.pyr   &   s,   


zHttpResponse.__init__c                 C   s
   || _ d S Nr   )r   enabler(   r(   r)   set_ssl_enableM   s   
zHttpResponse.set_ssl_enablec                 C   s   | j S r*   r+   r   r(   r(   r)   get_ssl_enabledP   s   zHttpResponse.get_ssl_enabledc                 C   s.   d}| j  D ]\}}|d|||f 7 }q|S )Nr	   z
%s %s : %s)r   items)requestsymbolbasekeyvaluer(   r(   r)   prepare_http_debugS   s   zHttpResponse.prepare_http_debugc                 C   sx   d|    |  f }|d|   7 }t|| |d  d|jtj	
|jd  f }t|| |d  d S )Nz
> %s %s HTTP/1.1z
> Host : %s>z
< HTTP/1.1 %s %sr   <)
get_methodupperget_urlget_hostloggerdebugr6   status_coder   _codesget)r   r1   responserequest_baseresponse_baser(   r(   r)   do_http_debugZ   s   zHttpResponse.do_http_debugc                 C   s   | j d ur| j S tjddS )NALIBABA_CLOUD_CA_BUNDLET)r   osenvironrA   r.   r(   r(   r)   get_verify_valuee   s   
zHttpResponse.get_verify_valuec                 C   s  |   rdnd}|  }|ds|ds,|dkr,| jdkr)| jdkr)d| j nd}n| jdkr6d| j nd}|dsB|drK|| |   }n
|| | |   }| jj  t| 	 || 
 |  d}| j|}| jstjdp}tjd	}tjd
ptjd}i | _|r|| jd< |r|| jd< | jj|| j| j| jfd|  d}	tjd}
|
d ur|
 dkr| ||	 |	j|	j|	jfS )Nzhttps://zhttp://P   i  z:%sr	   )r   r   datar   HTTPS_PROXYhttps_proxy
HTTP_PROXY
http_proxyhttphttpsF)proxiestimeoutallow_redirectsr&   DEBUGsdk)r/   r<   
startswithr   r;   r   cookiesclearr   r9   get_bodyget_headersprepare_requestr   rG   rH   rA   sendr   r   rI   lowerrE   r?   r   r    )r   current_protocolr   r!   r   reqpreppedproxy_https
proxy_httprB   
http_debugr(   r(   r)   get_response_objectj   sT   
$




z HttpResponse.get_response_object)__name__
__module____qualname__r   HTTPr   r-   r/   staticmethodr6   rE   rI   re   r(   r(   r(   r)   r   %   s.    
'
r   )rG   loggingaliyunsdkcore.vendored.requestsr   r   aliyunsdkcore.http.http_requestr   aliyunsdkcore.httpr   r   r   	getLoggerrf   r=   setLevelrU   StreamHandlerch
addHandlerDEFAULT_CONNECT_TIMEOUTr   r(   r(   r(   r)   <module>   s   

