如果获取全 WebBrowser 或 AxWebBrowser 控件发送的POST数据

mylocoy 2008-12-09 06:34:31
AxWebBrowser 浏览器控件有一个 BeforeNavigate2 事件,e.postData里包含了发送的POST数据信息,针对于普通的文本格式的完全可以,但只要表单里包含了文件,发送了附件文件后,获取到的post数据就会在这里被截断。无法将post数据获取完整

如:-----------------------------7d81d414b0c36
Content-Disposition: form-data; name="litpic"; filename=""
Content-Type: application/octet-stream


以下的就获取不到了。


axWebBrowser1:
private void axWebBrowser1_BeforeNavigate2(object sender, AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2Event e)
{
string postDataText = new string(Encoding.GetEncoding("GBK").GetChars(e.postData as byte[]));
}
WebBrowser下可以这样写
private void WebBrowser_BeforeNavigate2(object pDisp, ref object URL, ref object Flags, ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel)

{

   string postDataText = System.Text.Encoding.ASCII.GetString(PostData as byte[]); //或其他编码

}

结果都一样。无法获取完整,100分请教了!

...全文
238 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianke3477 2009-01-15
  • 打赏
  • 举报
回复
可以用firefox的firebug插件调试,能查看完整的数据
leafbupt 2008-12-10
  • 打赏
  • 举报
回复
application/octet-stream
既然是stream的byte[]不就行了么,你非把它转成text干嘛?
mylocoy 2008-12-10
  • 打赏
  • 举报
回复
确认了,是bug.目前没有办法解决这个问题
wangping_li 2008-12-10
  • 打赏
  • 举报
回复
够取的数据不对是字节数不够还是编码不对?
mylocoy 2008-12-10
  • 打赏
  • 举报
回复
关键是从调试看 byte[] 里面的字节数不够,一般就几百,刚刚够文字的长度。
zhu4139365 2008-12-09
  • 打赏
  • 举报
回复
不会,帮顶了

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧