起源
一次爬虫测试,有一个数据是content-type:multipart/form-data类型,使用常规的文件上传,无法正常请求,用charles抓包是fail to decode multipart encoder,应该是解析失败,构造的请求错误,
#解决
我们的请求头必须包含一个特殊的请求头信息:Content-Type,类型为:multipart/form-data,
而且还要有一个内容分割符 (boundary) 用于分割请求体中的多个post的内容。因为接收方解析和还原文件必须要根据这个boundary
首先
multipart_encoder = MultipartEncoder(
fields={
},
boundary='--WABoundary+57603F8EB6D77C9DWA'
)
然后在headers 后面加入这个代码,可以正常请求
headers[‘Content-Type’] = multipart_encoder.content_type