关于 WebBroker 无法读到 Request.ContentFields.Values['AName'] 内容的问题

本文解决了一个在Delphi中使用WebBroker时无法读取表单内容的问题。原因是未引入WEB.ReqMulti单元。缺少该单元会导致无法通过Request.ContentFields.Values访问表单数据,并且在表单包含中文或文件时程序会抛出异常。

做测试代码的时候,发现无法读到提交的表单内容。记得之前是能读到的。来回写了好几个测试程序才发现问题在哪里。

记录一下:


Delphi 创建的 WebBroker 项目,默认没有:uses WEB.ReqMulti;


这就导致了无法通过 Request.ContentFields.Values['MyName'] 来读到表单中的内容。修改代码,让页面返回 Request.ContentFields.Names[i],发现这个 Names[i] 是空值。


再修改代码,直接返回 Request.ContentFields[i],发现提交的表单内容连名字带内容都是有的。


这才想起可能是忘记了  uses WEB.ReqMulti 的原因。加上,测试通过。


另:如果没有 uses WEB.ReqMulti;  还会出现另外一种异常:输入的表单数据里面有中文,或者有上传的文件,则后台程序在第一行读  Request.ContentFields.Values['MyName'] 的时候,会直接出现异常:【No mapping for the Unicode character exists in the target multi-byte code page】。

调试的时候要注意上述现象,必要以为是中文编码的问题导致。其实这个时候,同样无法读到 Request.ContentFields.Names 的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值