我們有一些自定義模塊,我們已經重新定義了open
,seek
,read
,tell
函數根據參數只讀取文件的一部分。如何不讓python請求計算內容長度並使用提供的內容?
但是,這個邏輯覆蓋默認tell
和python requests
試圖計算內容長度,其中包括使用tell()
,然後重定向到我們的自定義tell
功能和邏輯是介於越野車,並返回一個錯誤值。我嘗試了一些更改,它會引發錯誤。
發現從請求models.py如下:
def prepare_content_length(self, body):
if hasattr(body, 'seek') and hasattr(body, 'tell'):
body.seek(0, 2)
self.headers['Content-Length'] = builtin_str(body.tell())
body.seek(0, 0)
elif body is not None:
l = super_len(body)
if l:
self.headers['Content-Length'] = builtin_str(l)
elif (self.method not in ('GET', 'HEAD')) and (self.headers.get('Content-Length') is None):
self.headers['Content-Length'] = '0'
現在,我無法找出其中的錯誤,並強調了進行深入調查以解決它。除了python請求的內容長度計算以外,其他所有工作都是有效的。
所以,我創建了我自己的定義來查找內容長度。我已經在請求頭中包含了這個值。但是,該請求仍在準備內容長度和投擲錯誤。
如何限制不準備內容長度並使用指定的內容長度?
那麼,你正在改變標準的功能和方法。你怎麼能期望事情正常工作? –
@AndreaCorbellini嗨,是的,你說得對。但是,我們需要將文件拆分爲多個部分並上傳。那麼,它在那裏已經很久了。最近,我們已經從urllib2切換到了請求,所以現在我們遇到了這個錯誤。 –