Java模拟表单post提交 HttpClient
http://www.xuehuile.com/blog/7b029a62311a45819ed4a0deae43a3a9.html
import java.io.IOException; import java.io.UnsupportedEncodingException; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; public class SendPostMethod { public String methodPost(String url,NameValuePair[] data){ String response= "";//要返回的response信息 HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod(url); // 将表单的值放入postMethod中 postMethod.setRequestBody(data); // 执行postMethod int statusCode = 0; try { statusCode = httpClient.executeMethod(postMethod); } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发 // 301或者302 if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) { // 从头中取出转向的地址 Header locationHeader = postMethod.getResponseHeader("location"); String location = null; if (locationHeader != null) { location = locationHeader.getValue(); System.out.println("The page was redirected to:" + location); response= methodPost(location,data);//用跳转后的页面重新请求。 } else { System.err.println("Location field value is null."); } } else { System.out.println(postMethod.getStatusLine()); try { response= postMethod.getResponseBodyAsString(); } catch (IOException e) { e.printStackTrace(); } postMethod.releaseConnection(); } return response; } public static void main(String[] args) throws UnsupportedEncodingException { String url = "http://localhost/uchome/sendapi.php"; NameValuePair name=new NameValuePair("name", "allen"); NameValuePair password=new NameValuePair("password", "allen"); NameValuePair[] data = {name,password}; String response=new SendPostMethod().methodPost(url,data); System.out.println("********"+response); } } 其中需要的jar包: 1、 commons-httpclient-3.1-rc1.zip http://jakarta.apache.org/commons/httpclient/downloads.html 2、commons-codec-1.3.jar http://jakarta.apache.org/site/downloads/downloads_commons-codec.cgi 3、commons-logging-api.jar 在tomcat5.5中的Tomcat 5.5\bin目录下或者 http://jakarta.apache.org/site/downloads/downloads_commons-logging.cgi
相关推荐
CyborgLin 2020-08-15
Guanjs0 2020-11-09
wmsjlihuan 2020-09-15
shishengsoft 2020-09-15
poplpsure 2020-08-17
Richardxx 2020-07-26
sunnyhappy0 2020-07-26
knightwatch 2020-07-19
wcqwcq 2020-07-04
chichichi0 2020-06-16
YAruli 2020-06-13
JF0 2020-06-13
84423067 2020-06-12
心丨悦 2020-06-11
zkwgpp 2020-06-04
stoneechogx 2020-06-04
litterfrog 2020-05-30
today0 2020-05-26