使用python请求进行分块编码 - 远程主机强制关闭的错误10054连接

时间:2017-10-31 17:27:18

标签: python redirect python-requests http-status-code-301 chunked-encoding

我在使用python请求运行脚本时收到Chunked Encoding Error,我想知道为什么我会收到此错误。

当我resp.encoding时,我会将其取回None

我目前没有在我的脚本中使用任何SSL认证验证,因此我也收到了不安全请求警告。

    for attachment in attachments:
     if attachment['type'] == 'Form':
        continue
      # create insertcursor row
      row = cursorPointData.newRow()
      pprint(attachments)

      for key in attachment:
        pprint(key)
        pprint(attachment[key])

        row.setValue(key, attachment[key])

    # Download file

      guid = attachment['guid']
      resp = requests.get(
        'https:...' + guid,
        headers={'Authorization': 'Bearer ' + token},
        stream=True,
        verify=False
      )
     contentType = resp.headers['Content-Type']
     contentLength = int(resp.headers['content-length'])
     pprint('contentLength = ' + str(contentLength))
     extension = contentType.split('/')[1]
     filename = '{0}.{1}'.format(guid, extension)
     output_path = os.path.join(attachmentDir, filename)
     attachmentPath = os.path.join("filepath", filename)

    with open(output_path, 'wb') as f:
        for chunk in resp.iter_content(chunk_size=None):
            if chunk:
                f.write(chunk)
                f.flush() #flush the data to file
                os.fsync(f.fileno()) #force the file write and free memory

    row.setValue('attachmentPath', attachmentPath)

    cursorPointData.insertRow(row)
del cursorPointData, row

1 个答案:

答案 0 :(得分:0)

我在Chrome开发者工具的“网络”标签中查看了,我的状态为200.但是在Firefox开发者工具中,我获得了301状态:"永久移动"。

事实证明我在请求中输入了错误的网址,并且需要将网址更改为重定向到的更新版本。

发现你可以在python请求库中使用response.history来查找任何重定向问题。

现在,我回复utf-8作为响应编码而不是没有。

留下这个以防万一其他人遇到同样的问题。