我需要解析一个 POST 请求,特别是它的参数。我理解它的方式是请求的主体包含形式的参数列表key1=value&key2=value
或其他数据,如上传的文件。有没有办法确定我得到了什么(参数或文件数据)?
一个快速的解决方案可能是正则表达式,但文件也可能包含以下形式的数据key1=value&key2=value
谢谢!
我需要解析一个 POST 请求,特别是它的参数。我理解它的方式是请求的主体包含形式的参数列表key1=value&key2=value
或其他数据,如上传的文件。有没有办法确定我得到了什么(参数或文件数据)?
一个快速的解决方案可能是正则表达式,但文件也可能包含以下形式的数据key1=value&key2=value
谢谢!
有没有办法确定我得到了什么(参数或文件数据)?
是的,但不是来自身体。您需要阅读请求标头Content-Type
。
如果是Content-Type: multipart/form-data
,则您已经获得了可以包含文件数据的复杂 MIME 多部分语法。
如果是Content-Type: application/x-www-form-urlencoded
,则您已获得类似查询字符串的参数。
如果它是其他东西(例如application/json
),您有一个自定义 POST 请求被其他东西触发,而不是直接提交表单,在这种情况下,由您决定该格式是什么。