Python &引用;TypeError:必须是str,而不是bytes";尝试访问request.POST字段时
我有一个基于金字塔框架的Web服务,它接受一个多部分/表单数据请求 当我从cURL发送请求时,一切正常; 但是,从Android应用程序来看,它失败了,出现以下错误 TypeError:必须是str,而不是bytes 当我尝试访问任何字段时:例如,Python &引用;TypeError:必须是str,而不是bytes";尝试访问request.POST字段时,python,pyramid,multipartform-data,Python,Pyramid,Multipartform Data,我有一个基于金字塔框架的Web服务,它接受一个多部分/表单数据请求 当我从cURL发送请求时,一切正常; 但是,从Android应用程序来看,它失败了,出现以下错误 TypeError:必须是str,而不是bytes 当我尝试访问任何字段时:例如,request.POST.get('smartphoneId',None) 不同之处在于Android库在字段中添加了一些标题,特别是内容传输编码。从cURL发送每个值,如下所示: --------------------------5f28b737b
request.POST.get('smartphoneId',None)
不同之处在于Android库在字段中添加了一些标题,特别是内容传输编码。从cURL发送每个值,如下所示:
--------------------------5f28b737bc4e4813
内容配置:表单数据;name=“smartphoneId”
二,
鉴于安卓系统(经过改装):
--0e0a43aa-3156-48ee-a949-931dcc4eb8be
内容配置:表单数据;name=“smartphoneId”
内容类型:文本/纯文本;字符集=UTF-8
内容长度:3
内容传输编码:8比特
999
最初,内容传输编码是二进制的;我手动将其更改为8位,但得到相同的错误。Python似乎无法解析/处理每个字段的内容
有什么想法吗?我也有同样的问题(关于Python 3.4)。为了解决这个问题,我为以下模块“webob/compat.py”创建了一个补丁:用python cgi 3.5的当前版本替换现有的multi_补丁。现在,它起作用了。我将在github存储库上创建pr
看
我为webob创建了一个pull请求:正如错误消息所说,您正在接收一个字节字符串,但函数需要一个本机字符串。如果库尚未与Py3k兼容,可以使用
str()
将其转换为Python 2。这是Python 3吗?使用decode
()方法将bytes对象转换为str;FramWork应该是兼容的(至少他们说),但可能还剩下一些bug。这不是pyramid的bug,只是python3,pyramid是完全兼容python3的。如果你可以复制这个作为一个小测试,或者让我完全转储失败的HTTP请求,为WebOb填写一份bug报告:我会看一看,看看这是否是WebOb应该解决的问题。