mirror of
https://github.com/HIllya51/LunaTranslator.git
synced 2024-12-28 08:04:13 +08:00
fix
This commit is contained in:
parent
52515993aa
commit
dd2b71f82d
@ -282,8 +282,8 @@ class AutoCURLHandle(CURL):
|
|||||||
|
|
||||||
class CURLException(Exception):
|
class CURLException(Exception):
|
||||||
def __init__(self,code) -> None:
|
def __init__(self,code) -> None:
|
||||||
self.errorcode=code.value
|
|
||||||
if isinstance(code,CURLcode):
|
if isinstance(code,CURLcode):
|
||||||
|
self.errorcode=code.value
|
||||||
error=curl_easy_strerror(code).decode('utf8')
|
error=curl_easy_strerror(code).decode('utf8')
|
||||||
for _ in dir(CURLcode):
|
for _ in dir(CURLcode):
|
||||||
if _.startswith('CURLE_') and code.value==getattr(CURLcode,_):
|
if _.startswith('CURLE_') and code.value==getattr(CURLcode,_):
|
||||||
|
@ -19,6 +19,17 @@ class Response(ResponseBase):
|
|||||||
def raise_for_status(self):
|
def raise_for_status(self):
|
||||||
if self.last_error:
|
if self.last_error:
|
||||||
raise CURLException(self.last_error)
|
raise CURLException(self.last_error)
|
||||||
|
def ExceptionFilter(func):
|
||||||
|
def _wrapper(*args,**kwargs):
|
||||||
|
try:
|
||||||
|
_= func(*args,**kwargs)
|
||||||
|
return _
|
||||||
|
except CURLException as e:
|
||||||
|
if e.errorcode==CURLcode.CURLE_OPERATION_TIMEDOUT:
|
||||||
|
raise Timeout(e)
|
||||||
|
else:
|
||||||
|
raise e
|
||||||
|
return _wrapper
|
||||||
class Session(Sessionbase):
|
class Session(Sessionbase):
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
@ -57,18 +68,9 @@ class Session(Sessionbase):
|
|||||||
|
|
||||||
def _getmembyte(self,mem):
|
def _getmembyte(self,mem):
|
||||||
return cast(mem.memory,POINTER(c_char))[:mem.size]
|
return cast(mem.memory,POINTER(c_char))[:mem.size]
|
||||||
|
@ExceptionFilter
|
||||||
def request_impl(self,
|
def request_impl(self,
|
||||||
method,scheme,server,port,param,url,headers,cookies,dataptr,datalen,proxy,stream,verify,timeout):
|
method,scheme,server,port,param,url,headers,cookies,dataptr,datalen,proxy,stream,verify,timeout):
|
||||||
try:
|
|
||||||
_= self.request_impl_1(method,scheme,server,port,param,url,headers,cookies,dataptr,datalen,proxy,stream,verify,timeout)
|
|
||||||
return _
|
|
||||||
except CURLException as e:
|
|
||||||
if e.errorcode==CURLcode.CURLE_OPERATION_TIMEDOUT:
|
|
||||||
raise Timeout(e)
|
|
||||||
else:
|
|
||||||
raise e
|
|
||||||
def request_impl_1(self,
|
|
||||||
method,scheme,server,port,param,url,headers,cookies,dataptr,datalen,proxy,stream,verify,timeout):
|
|
||||||
|
|
||||||
if self._status==0:
|
if self._status==0:
|
||||||
curl=self.curl
|
curl=self.curl
|
||||||
|
@ -23,6 +23,18 @@ class Response(ResponseBase):
|
|||||||
error=GetLastError()
|
error=GetLastError()
|
||||||
if error:
|
if error:
|
||||||
raise WinhttpException(error)
|
raise WinhttpException(error)
|
||||||
|
def ExceptionFilter(func):
|
||||||
|
def _wrapper(*args,**kwargs):
|
||||||
|
try:
|
||||||
|
_= func(*args,**kwargs)
|
||||||
|
return _
|
||||||
|
except WinhttpException as e:
|
||||||
|
if e.errorcode==WinhttpException.ERROR_WINHTTP_TIMEOUT:
|
||||||
|
raise Timeout(e)
|
||||||
|
else:
|
||||||
|
raise e
|
||||||
|
return _wrapper
|
||||||
|
|
||||||
class Session(Sessionbase):
|
class Session(Sessionbase):
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
super().__init__()
|
super().__init__()
|
||||||
@ -60,17 +72,8 @@ class Session(Sessionbase):
|
|||||||
if verify==False:
|
if verify==False:
|
||||||
dwFlags=DWORD(SECURITY_FLAG_IGNORE_ALL_CERT_ERRORS)
|
dwFlags=DWORD(SECURITY_FLAG_IGNORE_ALL_CERT_ERRORS)
|
||||||
WinHttpSetOption(curl,WINHTTP_OPTION_SECURITY_FLAGS, pointer(dwFlags),sizeof(dwFlags))
|
WinHttpSetOption(curl,WINHTTP_OPTION_SECURITY_FLAGS, pointer(dwFlags),sizeof(dwFlags))
|
||||||
|
@ExceptionFilter
|
||||||
def request_impl(self,
|
def request_impl(self,
|
||||||
method,scheme,server,port,param,url,headers,cookies,dataptr,datalen,proxy,stream,verify,timeout):
|
|
||||||
try:
|
|
||||||
_= self.request_impl_1(method,scheme,server,port,param,url,headers,cookies,dataptr,datalen,proxy,stream,verify,timeout)
|
|
||||||
return _
|
|
||||||
except WinhttpException as e:
|
|
||||||
if e.errorcode==WinhttpException.ERROR_WINHTTP_TIMEOUT:
|
|
||||||
raise Timeout(e)
|
|
||||||
else:
|
|
||||||
raise e
|
|
||||||
def request_impl_1(self,
|
|
||||||
method,scheme,server,port,param,url,headers,cookies,dataptr,datalen,proxy,stream,verify,timeout):
|
method,scheme,server,port,param,url,headers,cookies,dataptr,datalen,proxy,stream,verify,timeout):
|
||||||
headers=self._parseheader(headers,cookies)
|
headers=self._parseheader(headers,cookies)
|
||||||
flag=WINHTTP_FLAG_SECURE if scheme=='https' else 0
|
flag=WINHTTP_FLAG_SECURE if scheme=='https' else 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user