Skip to content

Commit 1405004

Browse files
authored
Merge pull request #26 from 2530901689/master
修复校验文件为*.json,使用response.json()异常问题
2 parents 0892070 + 522eb0d commit 1405004

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

ufile/httprequest.py

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
# -*- coding: utf-8 -*-
22

3-
import requests
43
import re
4+
5+
import requests
6+
57
from . import config
68
from .logger import logger
79

10+
811
def __return_wraper(response, content_consumed=False):
912
"""
1013
UCloud UFile 服务器响应的封装
@@ -17,7 +20,8 @@ def __return_wraper(response, content_consumed=False):
1720
if response.status_code not in [200, 204, 206]:
1821
return None, ResponseInfo(response)
1922
content_type = response.headers.get('Content-Type')
20-
ret = {} if content_consumed else response.json() if isinstance(content_type, str) and content_type.startswith('application/json') else {}
23+
ret = {} if content_consumed else response.json() if isinstance(content_type, str) and content_type.startswith(
24+
'application/json') and response.text != "" else {}
2125
return ret, ResponseInfo(response, None, content_consumed)
2226

2327

@@ -69,6 +73,7 @@ def _post_file(url, header, data):
6973
return None, ResponseInfo(None, e)
7074
return __return_wraper(response)
7175

76+
7277
def _uploadhit_file(url, header, params):
7378
"""
7479
秒传文件到空间
@@ -102,7 +107,8 @@ def _delete_file(url, header):
102107
return None, ResponseInfo(None, e)
103108
return __return_wraper(response)
104109

105-
def _head_file(url,header):
110+
111+
def _head_file(url, header):
106112
"""
107113
获取文件信息
108114
@@ -112,11 +118,12 @@ def _head_file(url,header):
112118
:return: ResponseInfo: 响应的具体信息,UCloud UFile 服务器返回信息或者网络链接异常
113119
"""
114120
try:
115-
response=requests.head(url, headers=header, timeout=config.get_default('connection_timeout'))
121+
response = requests.head(url, headers=header, timeout=config.get_default('connection_timeout'))
116122
except requests.RequestException as e:
117123
return None, ResponseInfo(None, e)
118124
return __return_wraper(response)
119125

126+
120127
def _initialsharding(url, header):
121128
"""
122129
初始化分片请求
@@ -160,7 +167,8 @@ def _finishsharding(url, param, header, data):
160167
:return: ResponseInfo: 响应的具体信息,UCloud UFile 服务器返回信息或者网络链接异常
161168
"""
162169
try:
163-
response = requests.post(url, headers=header, params=param, data=data, timeout=config.get_default('connection_timeout'))
170+
response = requests.post(url, headers=header, params=param, data=data,
171+
timeout=config.get_default('connection_timeout'))
164172
except requests.RequestException as e:
165173
return None, ResponseInfo(None, e)
166174
return __return_wraper(response)
@@ -188,6 +196,7 @@ def _download_file(url, header, localfile):
188196
return __return_wraper(response)
189197
return __return_wraper(response, True)
190198

199+
191200
def _getfilelist(url, header, param):
192201
"""
193202
获取文件列表
@@ -205,6 +214,7 @@ def _getfilelist(url, header, param):
205214
return None, ResponseInfo(None, e)
206215
return __return_wraper(response)
207216

217+
208218
def _listobjects(url, header, param):
209219
"""
210220
获取目录文件列表
@@ -222,6 +232,7 @@ def _listobjects(url, header, param):
222232
return None, ResponseInfo(None, e)
223233
return __return_wraper(response)
224234

235+
225236
def _restore_file(url, header):
226237
"""
227238
解冻冷存文件请求
@@ -238,6 +249,7 @@ def _restore_file(url, header):
238249
return None, ResponseInfo(None, e)
239250
return __return_wraper(response)
240251

252+
241253
def _classswitch_file(url, header, params):
242254
"""
243255
文件存储类型转换请求
@@ -255,6 +267,7 @@ def _classswitch_file(url, header, params):
255267
return None, ResponseInfo(None, e)
256268
return __return_wraper(response)
257269

270+
258271
def _copy_file(url, header):
259272
"""
260273
拷贝文件到空间
@@ -271,6 +284,7 @@ def _copy_file(url, header):
271284
return None, ResponseInfo(None, e)
272285
return __return_wraper(response)
273286

287+
274288
def _rename_file(url, header, params):
275289
"""
276290
重命名文件到空间
@@ -288,6 +302,7 @@ def _rename_file(url, header, params):
288302
return None, ResponseInfo(None, e)
289303
return __return_wraper(response)
290304

305+
291306
def _bucket_request(url, param, header):
292307
"""
293308
UCloud UFile 空间管理请求
@@ -320,6 +335,7 @@ class ResponseInfo(object):
320335
ret_code: Integer类型, UCloud UFile 服务内部错误码,正确服务或者网络连接则为0
321336
etag: string类型,文件的etag,无则为None
322337
"""
338+
323339
def __init__(self, response, exception=None, content_consumed=False):
324340
"""
325341
初始化 ResponseInfo 实例
@@ -358,7 +374,8 @@ def __init__(self, response, exception=None, content_consumed=False):
358374
self.content_range = None
359375
self.etag = response.headers.get('Etag')
360376
if self.status_code not in [200, 204, 206]:
361-
ret = response.json() if response.headers.get('Content-Type') == 'application/json' and len(response.text) > 0 else None
377+
ret = response.json() if response.headers.get(
378+
'Content-Type') == 'application/json' and response.text != "" else None
362379
if ret is None:
363380
self.error = 'unknown error'
364381
self.ret_code = -1

0 commit comments

Comments
 (0)