HttpClient4.5.2
package com.xweisoft.sms; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; public class ClientMultipartFormPost { public static void get() { // 定义httpClient的实例 //若要保持session 只能创建一次HttpClient实例 HttpClient httpclient = new HttpClient(); // GetMethod getMethod = new GetMethod( "url"); GetMethod getMethod = new GetMethod("url"); // 使用系统提供的默认恢复策略 getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());// 创建get方法的实例 // getMethod.getParams().setParameter("User-Agent", // "Mozilla/4.0 (compatible; MSIE 5.0; Windows XP; DigExt)"); // httpclient = (HttpClient) request.getSession().getAttribute( // "HTTPCLIENT"); // 创建post方法实例 // PostMethod postMethod = new UTF8PostMethod("url"); // PostMethod postMethod = new UTF8PostMethod( "url"); // // // 填入各个表单域的值 // NameValuePair[] data = { new NameValuePair("apiId", "A21"), // new NameValuePair("account", "1801.....3"), // new NameValuePair("code", "0610"), // new NameValuePair("newPwd", "111111"), // new NameValuePair("idCard", "") }; // // // 将表单的值放入到post方法中 // postMethod.setRequestBody(data); // // postMethod.getParams().setParameter("http.protocol.cookie-policy", // CookiePolicy.BROWSER_COMPATIBILITY); // postMethod.setRequestHeader("Referer", "url"); try { // 执行GET方法 int statusCode = httpclient.executeMethod(getMethod); // 获取cookies Cookie[] cookies = httpclient.getState().getCookies(); for (Cookie cookie : cookies) { System.out.println("cookiesName----" + cookie.getName()); System.out.println("cookiesvalue----" + cookie.getValue()); } httpclient.getState().addCookies(cookies); // 执行post方法 // int statusCode = httpclient.executeMethod(postMethod); // if (statusCode == HttpStatus.SC_MOVED_TEMPORARILY) { // Header locationHeader = postMethod // .getResponseHeader("Location"); // String location = null; // if (locationHeader != null) { // location = locationHeader.getValue(); // } // postMethod = new PostMethod(location); // postMethod // .setRequestHeader("Referer", "url"); // NameValuePair[] data1 = { new NameValuePair("apiId", "A21"), // new NameValuePair("account", "1801...3"), // new NameValuePair("code", "0610"), // new NameValuePair("newPwd", "111111"), // new NameValuePair("idCard", "") }; // postMethod.setRequestBody(data1); // postMethod.getParams().setParameter( // "http.protocol.cookie-policy", // CookiePolicy.BROWSER_COMPATIBILITY); // int statusCode1 = httpclient.executeMethod(postMethod); // if (statusCode1 != HttpStatus.SC_OK) { // System.out.println("Method is wrong " // + postMethod.getStatusLine()); // } // } if (statusCode != HttpStatus.SC_OK) { System.out.println("Method is wrong " + getMethod.getStatusLine()); // System.out.println("Method is wrong " // + postMethod.getStatusLine()); } InputStream responseBody = getMethod.getResponseBodyAsStream(); // InputStream responseBody = postMethod.getResponseBodyAsStream(); BufferedReader reader = new BufferedReader(new InputStreamReader( responseBody, "utf-8")); String line = reader.readLine(); } catch (HttpException e) { // TODO: handle exception e.printStackTrace(); } catch (IOException e) { // TODO: handle exception e.printStackTrace(); } finally { getMethod.releaseConnection();// 释放链接 // postMethod.releaseConnection(); } } // Inner class for UTF-8 support public static class UTF8PostMethod extends PostMethod { public UTF8PostMethod(String url) { super(url); } @Override public String getRequestCharSet() { // return super.getRequestCharSet(); return "UTF-8"; } } }
相关推荐
Kafka 2020-09-18
Wepe0 2020-10-30
杜倩 2020-10-29
windle 2020-10-29
minerd 2020-10-28
mengzuchao 2020-10-22
Junzizhiai 2020-10-10
bxqybxqy 2020-09-30
风之沙城 2020-09-24
kingszelda 2020-09-22
大唐帝国前营 2020-08-18
yixu0 2020-08-17
TangCuYu 2020-08-15
xiaoboliu00 2020-08-15
songshijiazuaa 2020-08-15
xclxcl 2020-08-03
zmzmmf 2020-08-03
newfarhui 2020-08-03
likesyour 2020-08-01