码迷,mamicode.com
首页 > Web开发 > 详细

解决使用webbrowser请求url时数据传递丢失问题

时间:2016-01-27 12:48:52      阅读:585      评论:0      收藏:0      [点我收藏+]

标签:

问题: 

使用“ this.webBrowser.Url = new Uri(webBrowserUrl);”方式请求Action(Java Web)并传递数据,在webBrowserUrl中携带的参数过长时,java web中接收到的数据值部分丢失。

原因

使用此方式请求url,相当于GET请求,而GET方法提交的数据有长度限制(由浏览器、服务器决定,HTTP GET方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制),故而在传递数据过长时会出现数据部分丢失问题。

解决方式

使用webBrowser.Navigate方法post提交数据。

eg:

1 string param="ssss=wwww&sss=dddddd";
2 byte[] postBuffer = new byte[param.Length];
3 postBuffer = System.Text.Encoding.UTF8.GetBytes(param);
4 string heads = string.Format("{0}:{1}\r\n{2}:{3}\r\n{4}:{5}", "Accept", "*/*", "Content-Type", "application/x-www-form-urlencoded", "User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1"
5 string tagerFrameName="";
6 this.webBrowser.Navigate(webBrowserUrl, tagerFrameName, postBuffer, heads);

注意:若想要在Action中使用request.getParameter方法获取传递的参数,必须要在heads中添加Content-Type的相关配置。

解决使用webbrowser请求url时数据传递丢失问题

标签:

原文地址:http://www.cnblogs.com/ylhssn/p/5162740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!