Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java提交HTML表单_Java_Forms_Post_Submit_Httpclient - Fatal编程技术网

用Java提交HTML表单

用Java提交HTML表单,java,forms,post,submit,httpclient,Java,Forms,Post,Submit,Httpclient,我试图填写一个HTML表单,按下表单的提交按钮,然后从中得到响应 填写表单非常有效,但我不知道如何按下页面上的提交按钮 我正在使用ApacheHttpClient库 我的代码是: httpclient = new DefaultHttpClient(); HttpPost httpost = new HttpPost(pUrl); List <NameValuePair> nvps = new ArrayList <NameVa

我试图填写一个HTML表单,按下表单的提交按钮,然后从中得到响应

填写表单非常有效,但我不知道如何按下页面上的提交按钮

我正在使用ApacheHttpClient库

我的代码是:

        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();
httpclient=newdefaulthttpclient();
HttpPost HttpPost=新的HttpPost(pUrl);
List-nvps=newarraylist();
添加(新的BasicNameValuePair(“过滤器\响应\时间\ http”,“1”);
添加(新的BasicNameValuePair(“filter_port”,“80”);
添加(新的BasicNameValuePair(“过滤国家”、“美国”);
添加(新的BasicNameValuePair(“提交”、“ANZEGN”);
setEntity(新的UrlEncodedFormEntity(nvps,HTTP.UTF_8));
response=httpclient.execute(httpost);
entity=response.getEntity();
“提交”按钮的代码为:

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

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


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

单击submit按钮时会调用JavaScript函数。您不能使用java代码模拟这种行为


为此,您需要使用能够处理javascript的无头浏览器。

UrlEncodedFormEntity的第二个参数应该是
java.nio.charset.StandardCharsets.UTF_8
,因为
HTTP.UTF_8
已被弃用。