http协议content-type解析问题
发布于 5 年前 作者 DevinXian 7201 次浏览 最后一次编辑是 4 年前 来自 问答

今天iOS同事说上传文件的接口不能用了…VC上没看到代码改动…然后查,发现APP运行在32位iOS系统OK,64位就悲剧了…原因呢?… 上传文档的Content-Type在64位系统上被偷偷加了一个charset属性,如下:

multipart/form-data; charset=utf-8; boundary=0xKhTmLbOuNdArY

然后看了下multiparty的源码,它匹配Content-Type的正则如下:

/^multipart\/(form-data|related);\s*boundary=(?:"([^"]+)"|([^;]+))$/i;

果然,根本就匹配不上,所以解析自然出错(Express@3.4.2)。 我对http协议syntax了解不多,还望论坛的大大们看看,这个是什么个情况?@MiguelValentine 大神

参考?

As with all multipart MIME types, each part has an optional “Content-Type” header that defaults to “text/plain”. User agents should supply the “Content-Type” header, accompanied by a “charset” parameter.

5 回复

(:з」∠) 兄弟你艾特错人了。向我这种不写正则的懒人,都是用的数组解的。

@MiguelValentine 那这个charset是应该要还是不要呀~

@DevinXian 你能写这个正则,难道还不能再加个charset了?

在中间加一段charset不就行了吗?

/^multipart\/(form-data|related);\s*(charset=[\S]*)?\s*boundary=(?:"([^"]+)"|([^;]+))$/i
回到顶部