首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否限制"rundll32 url.dll,FileProtocolHandler“的URL长度?

是否限制"rundll32 url.dll,FileProtocolHandler“的URL长度?
EN

Stack Overflow用户
提问于 2008-10-28 08:46:45
回答 4查看 9.5K关注 0票数 4

我有一个包含大量参数的长URL,我希望使用以下命令在Windows系统上的Java默认浏览器中打开该URL

代码语言:javascript
复制
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+url)

对于像"http://www.google.com“这样的短URL来说,这很好用。但是对于长URL(例如,2000个字符),这完全没有任何作用:没有例外或任何类似的东西,它只是被忽略。

Runtime.exec命令有字符限制a)还是rundll32 url.dll命令有字符限制b)?如果是这样,限制是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-28 09:41:11

您将遇到特定于this (archived)操作系统/浏览器的最大URL长度问题:

对于"rundll32 url.dll“(即微软IE),您将被限制为2,083个字符(包括http://).

在我看来,你有两种选择:

  1. 构建(或使用)TinyURL风格的服务,它可以将长urls转换为短的、重定向的urls。然而,即使在这里,你也会遇到同样的URL长度问题,只是在浏览器本身而不是你的Runtime()语句中。例如,浏览器窗口将打开,转到将执行重定向到长URL的短URL,但失败。
  2. 使用POST请求并将部分或全部URL参数埋入其中。您可以在HTTP POST请求的主体中提供非常长的参数,而不是使用GET调用。这不会像您的示例代码那么简单。事实上,使用rundll32 url.dll组合(我不熟悉它),这可能相当棘手(或不可能)……
票数 2
EN

Stack Overflow用户

发布于 2008-11-19 12:12:25

顺便说一句,我建议使用跨平台的Desktop.open()Desktop.browse(),而不是只使用Windows的rundll32。如果它不能打开write应用程序,它会给你一个IOException。

票数 2
EN

Stack Overflow用户

发布于 2008-10-28 18:36:26

这也将取决于windows的版本,因为您可能在命令行上超出了操作系统的MAX_PATH长度?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/242579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档