在asp.net中传递和获取太大的查询字符串

时间:2011-07-15 12:37:29

标签: c# asp.net iis

我与软件集成,他们将文档发送到我的网址,查询字符串值太大。即一个参数超过75000个字符。我正处于研发阶段,检查集成是否有效。我开始知道浏览器会限制查询字符串。我想把他们的文件放到我的服务器上。我谷歌但没有得到答案。网址采用以下方式

Http:\\myurl?document=thierdocument in base64 encoded format

指导我克服这个问题

3 个答案:

答案 0 :(得分:4)

这不起作用。查询字符串限制为几千个字符,具体取决于浏览器(即2083 characters for IE)。请改用HTTP POST,并将文档以二进制格式放入请求正文中。

网址的主要思想是统一资源 定位器 ,而不是将所有数据作为网址本身的一部分传递。您无法解决浏览器对URL的限制(您也不应该这样做) - 另一种方法是以数字或Guid的形式传递文档ID,然后查找该文档以作为页面的一部分进行处理。

答案 1 :(得分:2)

我的建议是将数据从查询字符串移到帖子表格。

我的建议是将数据从查询字符串移到帖子表格。

为什么?
一个原因是url数据(包括您的大字符串)用于了解页面是否将由浏览器缓存。所以我认为浏览器他自己有一个问题需要记住这个大字符串。

另一个原因是这个网址是原来的,很大的,并且很可能无法到达目标。

IE中的2083个字符我认为仅仅是关于URL,而不是所包含的数据。

答案 2 :(得分:0)

您必须使用POST查询来执行此操作。

取自What is the limit on QueryString / GET / URL parameters?

  

网址长度规范并未规定最小或最大网址   长度,但实现因浏览器而异。在Windows上:Opera   支持~4050个字符,IE 4.0+支持2083个字符,   Netscape 3 - > 4.78在导致错误之前支持最多8192个字符   在关闭时,Netscape 6在导致错误之前支持~2000   启动。