【问题标题】:How to open webpage in users preferred browser as a post request in Java如何在用户首选浏览器中打开网页作为 Java 中的发布请求
【发布时间】:2011-02-07 21:23:12
【问题描述】:

好的,我知道如何在代码中向网站发送 HTTP POST 请求,并且我知道如何在浏览器中打开 url (HTTP GET)。但是如何在浏览器中打开 HTTP POST。

编辑:更多细节: 该网站允许您打开一个页面以添加新条目,您可以通过发布该信息来为该页面添加信息。我在我的 Java 桌面应用程序中有这些信息,所以我想从我的 Java 应用程序中打开添加新条目页面,在用户首选的浏览器中播种已知信息。

编辑: 所以我尝试了 Lees 的回答,并设法构建了一个带有提交按钮的网页,当你点击它时,它会转到填写了字段的最后一页,但我无法让 javascript 工作,以便它自动进入那里而无需按下提交按钮。这是我生成的网页

<html><head>
<script type = "text/javascript">
function onLoad() 
{
    document.getElementById('form').submit();
}
</script>
</head>
<body>
<form name="form" action="http://test.musicbrainz.org/release/add" method="post">
<input name="name" type="hidden" value="Porcupine"/>
<input type="submit" value="send">
</form>
</body>

【问题讨论】:

  • 好的,因此使用 getElementById 来获取具有名称的元素同时工作,只是一个巧合(因为名称和 ID 共享名称空间)。仅声明一个名为 onLoad 的函数不足以使其在文档加载时运行。你可以说,就可以了。

标签: java http post


【解决方案1】:

由于无法通过地址栏发布,您需要提供一个包含 HTML 表单的页面并提交该表单。您可以尝试制定一个构建 HTML 表单并发布它的 javascript: URI(如 favelet)。但我不能 100% 确定 JavaScript URI 是否与操作系统的首选浏览器相关联。所以我会在“你不能”这一边犯错。

但是您可以获取一个带有表单的页面和发布它的 JavaScript。提供 JavaScript 已启用。

【讨论】:

  • 所以我创建了一个带有表单的网页,以及一些发布表单的 javascript,谢谢,尽管我很惊讶需要这样的 hack,但我可以看到它会起作用。
【解决方案2】:

我假设由于您需要“POST”,因此您需要发送数据。我觉得我们没有所有信息来正确回答这个问题。我猜你知道,在后端,你想要发布的数据是什么。我还猜测您不希望用户必须手动提交任何内容。我可以想象您在页面上有一个用户,在后端,您有一个 httpclient 正在为您发布数据。在您的页面上,您可以让 javascript 调用您的 servlet(或其他)来发布数据并将输出提供到新窗口(或其他)。

【讨论】:

  • @DeShaun 添加了请求的信息
【解决方案3】:

为 Firefox 使用 Poster 插件:

“用于与 Web 服务和其他 Web 资源交互的开发人员工具,可让您发出 HTTP 请求、设置实体主体和内容类型。这允许您与 Web 服务交互并检查结果......”

或者如果你更喜欢Google Chrome

【讨论】:

  • 不好,我需要一个纯 Java 解决方案,可以与用户首选的浏览器一起使用。
猜你喜欢
  • 2011-03-09
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多