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

问题:

使用“ 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的相关配置。

时间: 2024-10-28 11:19:34

解决使用webbrowser请求url时数据传递丢失问题的相关文章

完美解决 easyui 请求url时 缓存问题

由于用easyui 在ie浏览器中修改数据后 列表数据不同步,所以使用 Math.random() 函数.使每次请求URL都不一样,可解决缓存问题 function _4ba() { var nurl = opts.url != undefined ? ((opts.url.indexOf("?") > 0 ? "&" : "?") + "nradom=" + Math.random()) : "&qu

springMVC框架在js中使用window.location.href请求url时IE不兼容问题解决

是使用springMVC框架时,有时候需要在js中使用window.location.href来请求url,比如下面的路径: window.location.href = 'forecast/download.do' 在谷歌浏览器下,实际请求的路径是:项目名/forecast/download.do 而在IE下访问时在中间多了好几层文件夹: 造成这种情况的原因是各种浏览器在使用window.localtion.href请求相对路径时处理方法不同 IE是从当前当前路径开始跳转 谷歌是从根目录开始跳

【异常】Specified key was too long;max key length is 767 bytes、解决由于HDFS格式化造成Hive数据全部丢失的问题

hive中可能会出现一个非常常见的异常:Specified key was too long;max key length is 767 bytes?是mysql/hive字符集问题.需要改变hive元数据库的字符集:mysql>alert database ruozedata character set latin1 然后重启hive,重启mysql. 由于HDFS进行了格式化,造成Hive的数据全部丢失,所以连接不上Hive.所以解决办法是:1)去mysql中删除Hive中创建的数据库(注意

Vuex页面跳转时数据传递

1.Vuex概念 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 这个状态自管理应用包含以下几个部分: state,驱动应用的数据源: view,以声明方式将 state 映射到视图: actions,响应在 view 上的用户输入导致的状态变化. 以下是一个表示"单向数据流"理念的极简示意: Vuex基本思想 2. 引入vuex npm install vuex --save 3.在src/store文件下下创建一个store.js import Vue from '

剖析 Rails 3 MVC 中的数据传递

本文分析了 Rails 3 的 MVC 架构,探讨总结了 Rails 3 的控制器与视图.控制器与模型.视图与布局以及多个视图之间的数据传输方法和技巧.假设您对 Ruby on Rails 有基本的了解,至少能够配置 Ruby on Rails 并运行类似 Hello World 的入门应用程序. 0 评论: 林 洪祥, 软件工程师, IBM 2011 年 8 月 29 日 内容 在 IBM Bluemix 云平台上开发并部署您的下一个应用. 现在就开始免费试用 如果读者已经开发过基于 Rail

HTTP 请求方式: GET和POST的比较当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。

什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP在客户端和服务器之间以request-response protocol(请求-回复协议)工作. GET - 从指定的服务器中获取数据 POST - 提交数据给指定的服务器处理 GET方法: 使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器: /test/demo_form.jsp?name1=value1

解决MVC Jquery"此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站"的问题

在ASP.NET MVC项目中,使用AJAX向控制器发送GET请求获取JSON数据时,出现这个错误:"此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站.若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet". 其实从返回的这个错误信息我们已经可以知道解决方法了,看这个信息:”因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站“,说明我们只要使用POST请求就可以了.后面的 “若要允许 GET 请求,请将 Jso

TCP Incast 问题TCP INCAST解决思路 应用场景:在集群文件系统内,客户端应用请求某个逻辑数据块(通常情况下一个读数据块大小是1MB),该数据块以条带化方式分别存储在几个存储服务器上,即采用更小的数据片存储(32KB,256KB等),这种小数据片称为服务器请求单元(SRU)。只有当客户端接收到所有的服务器返回的其所请求数据块的SRU后才继续发送出下一个数据块请求,即客户端同时向

TCP INCAST解决思路 应用场景:在集群文件系统内,客户端应用请求某个逻辑数据块(通常情况下一个读数据块大小是1MB),该数据块以条带化方式分别存储在几个存储服务器上,即采用更小的数据片存储(32KB,256KB等),这种小数据片称为服务器请求单元(SRU).只有当客户端接收到所有的服务器返回的其所请求数据块的SRU后才继续发送出下一个数据块请求,即客户端同时向多个存储服务器发起并发TCP请求,且所有服务器同时向客户端发送SRU. 出现的问题: 1)         这种多对一的服务器向客

SpringMVC3.2 解决PO返回前台转成JSON时数据Long精度丢失问题

SpringMVC3.2  解决PO返回前台转成JSON时数据Long精度丢失问题 方案 1.自定义一个杰克逊的json转换类 public class LongToStringAdapter extends ObjectMapper { private static final long serialVersionUID = 4402127997078513582L; public LongToStringAdapter() { super(); SimpleModule simpleModu