C#获取了Post数据,如何处理Post数据?

foxwfb 2009-03-04 04:01:30

我用这个方法获取 Post数据

void wb_BeforeNavigate2(object pDisp, ref object URL, ref object Flags, ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel)
{
System.Text.Encoding.ASCII.GetString(PostData as byte[]);
}

得到一些如下数据:
mailNo=&companyCode=&orderId=751368621&action=consign_action&event_submit_do_online_consign=&event_submit_do_offline_consign=&event_submit_do_dummy=1&event_submit_do_limit_consign=&event_submit_do_refresh_address=&_fmu.r._0.coun=1&_fmu.r._0.c=%B2%BB%D0%E8%CA%D5%BB%F5%C8%CB&_fmu.r._0.p=QQ%3A89922023%0D%0A%B1%B8%D7%A2%

有直接的方法没有取得数据没有,比如说orderId=751368621 我要取得orderID的, 再就是如何取得中文,小弟对这些个都不太懂,望大虾们多指教!


C#代码。
...全文
1800 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdzr_826 2009-03-05
  • 打赏
  • 举报
回复
你这些信息是从一个网址获得的吗?
如果是可以用
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);

request.Method = "POST";
来获取request信息。
wdzr_826 2009-03-04
  • 打赏
  • 举报
回复
楼上不是UTF而是GB2312
解码内容如下:
MAILNO=&COMPANYCODE=&ORDERID=751368621&ACTION=CONSIGN_ACTION&EVENT_SUBMIT_DO_ONLINE_CONSIGN=&EVENT_SUBMIT_DO_OFFLINE_CONSIGN=&EVENT_SUBMIT_DO_DUMMY=1&EVENT_SUBMIT_DO_LIMIT_CONSIGN=&EVENT_SUBMIT_DO_REFRESH_ADDRESS=&_FMU.R._0.COUN=1&_FMU.R._0.C=不需收货人&_FMU.R._0.P=QQ:89922023 备注

        Response.Write(System.Web.HttpUtility.UrlDecode("mailNo=&companyCode=&orderId=751368621&action=consign_action&event_submit_do_online_consign=&event_submit_do_offline_consign=&event_submit_do_dummy=1&event_submit_do_limit_consign=&event_submit_do_refresh_address=&_fmu.r._0.coun=1&_fmu.r._0.c=%B2%BB%D0%E8%CA%D5%BB%F5%C8%CB&_fmu.r._0.p=QQ%3A89922023%0D%0A%B1%B8%D7%A2% ", System.Text.UnicodeEncoding.GetEncoding("GB2312")).ToUpper())
;

Post的数据可以用Request["参数名"]来获得。如 Request["_FMU.R._0.C"] = ”不需收货人“
foxwfb 2009-03-04
  • 打赏
  • 举报
回复
我试试,UTF编码
hopewoo 2009-03-04
  • 打赏
  • 举报
回复
%0D%0A%B1%B8%D7%A2这些是UTF码,你转换下就好了。
你得到的东西只要简单分割下就行了。
EveryCase 2009-03-04
  • 打赏
  • 举报
回复
顶~~~~~~~~~~~~~~~~
foxwfb 2009-03-04
  • 打赏
  • 举报
回复
System.Web.HttpUtility.UrlDecode(“你得到的字符串”,System.Text.UnicodeEncoding.GetEncoding("GB2312")).ToUpper());
这个明白了。

但这个如何实现 Post的数据可以用Request["参数名"]
panw520 2009-03-04
  • 打赏
  • 举报
回复
学习
wdzr_826 2009-03-04
  • 打赏
  • 举报
回复
System.Web.HttpUtility.UrlDecode(“你得到的字符串”,System.Text.UnicodeEncoding.GetEncoding("GB2312")).ToUpper());
wdzr_826 2009-03-04
  • 打赏
  • 举报
回复
如果是Winform的话需要引入System.Web程序集。
糖汽水 2009-03-04
  • 打赏
  • 举报
回复
Encoding.ASCII

这个你换别的字符格式看看
foxwfb 2009-03-04
  • 打赏
  • 举报
回复
楼上这位大哥,麻烦说具体一点,我是在WinForm程序进行操作的。

110,533

社区成员

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

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

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