поднять ChunkedEncodingError (e) запросы - PullRequest
0 голосов
/ 02 июля 2019

Я загружаю CSV-файл из Restful API Salesforce. Если размер файла увеличивается, он показывает

Заголовки ответа:

{
    'Expect-CT': 'max-age=86400; report-uri="a.forcesslreports.com******/######";',
    'Public-Key-Pins-Report-Only': '"#####"; pin-sha256="&&&&&&&&"; pin-sha256="@@@@@@"; max-age=86400; includeSubDomains; report-uri="a.forcesslreports.com/@@@@/#####";',
    'X-Robots-Tag': 'none',
    'X-Content-Type-Options': 'nosniff',
    'Transfer-Encoding': 'chunked',
    'Set-Cookie': 'BrowserId=#########;Path=/;Domain=.salesforce.com;Expires=Sat, 31-Aug-2019 10:52:32 GMT;Max-Age=5184000',
    'Strict-Transport-Security': 'max-age=31536002; includeSubDomains',
    'Sforce-Limit-Info': 'api-usage=22/500',
    'X-XSS-Protection': '1; mode=block',
    'Cache-Control': 'no-cache,must-revalidate,max-age=0,no-store,private',
    'Date': 'Tue, 02 Jul 2019 10:52:32 GMT',
    'Content-Type': 'application/octetstream',
    'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT'
} 
raise ChunkedEncodingError(e)
requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(1546 bytes read, 6646 more expected)', IncompleteRead(1546 bytes read, 6646 more expected))

Я не понимаю, почему разрывается соединение и как это исправить

def download_file(url, header):
    local_filename = url.split('/')[-2]
    with requests.get(url, stream=True, headers=header) as r:
        r.raise_for_status()
        print("in get")
        with open(local_filename+".csv", 'wb') as f:
            for chunk in r.iter_content(chunk_size=1024*8): 
                #print("in for loop of chunk")
                if chunk: # filter out keep-alive new chunks
                    f.write(chunk)
                    #f.flush()
    r.close()
    return local_filename
...