用 Java 提交 HTML 表单

发布于 2024-12-29 13:14:12 字数 900 浏览 1 评论 0原文

我正在尝试填写 HTML 表单,按下表单的提交按钮,然后从中获取响应。

填写表格效果非常好,但我不知道如何按页面上的提交按钮。

我正在使用 apache httpclient 库。

我的代码是:

        httpclient = new DefaultHttpClient();
        HttpPost httpost = new HttpPost(pUrl);

        List <NameValuePair> nvps = new ArrayList <NameValuePair>();
        nvps.add(new BasicNameValuePair("filter_response_time_http", "1"));
        nvps.add(new BasicNameValuePair("filter_port", "80"));
        nvps.add(new BasicNameValuePair("filter_country", "US"));
        nvps.add(new BasicNameValuePair("submit", "Anzeigen"));

        httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));

        response = httpclient.execute(httpost);


        entity = response.getEntity();

提交按钮的代码是:

<input onclick="doSubmit();" id="submit" type="submit" value="Anzeigen" name="submit" /> 

I am trying to fill in a HTML Form, press a submit button of the form and then get the response from it.

Filling in the form works really well but i can't figure out how to press the submit button on the page.

I am using the apache httpclient libraries.

My code is:

        httpclient = new DefaultHttpClient();
        HttpPost httpost = new HttpPost(pUrl);

        List <NameValuePair> nvps = new ArrayList <NameValuePair>();
        nvps.add(new BasicNameValuePair("filter_response_time_http", "1"));
        nvps.add(new BasicNameValuePair("filter_port", "80"));
        nvps.add(new BasicNameValuePair("filter_country", "US"));
        nvps.add(new BasicNameValuePair("submit", "Anzeigen"));

        httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));

        response = httpclient.execute(httpost);


        entity = response.getEntity();

The code for the submit button is:

<input onclick="doSubmit();" id="submit" type="submit" value="Anzeigen" name="submit" /> 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

放低过去 2025-01-05 13:14:12

您不需要使用 HttpClient“单击按钮”;它所做的只是 HTTP 的东西,与 JS 和 DOM 无关。

如果您想模拟浏览器,请使用类似 JWebUnit 的东西,它可以驱动 HttpClient 和 Selenium,并提供 JavaScript支持。

You don't "click a button" with HttpClient; all it does is HTTP stuff, which is unrelated to JS and the DOM.

If you want to emulate a browser, use something like JWebUnit, which can drive both HttpClient and Selenium, and provides JavaScript support.

雪化雨蝶 2025-01-05 13:14:12

单击提交按钮时会调用 JavaScript 函数。您无法使用 Java 代码模拟该行为。

为此,您需要使用像 htmlunit 这样可以处理 javascript 的无头浏览器。

Your submit button calls a javascript function when clicked. You can't emulate that behaviour using your java code.

For that you need to use a headless browser like htmlunit which can handle javascript.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文