java模拟http请求

<dependency>
	<groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
	<version>4.2</version>
</dependency>
public class HttpUtil {

	private static DefaultHttpClient defaultHttpClient = null;
	public static CookieStore cookieStore;
	public static final int CONNECTIONTIMEOUT = 300000;
	public static final int SOCKETTIMEOUT = 300000;

	/**
	 * 带cookie的get提交
	 * 
	 * @param urlpath
	 * @param encoding
	 * @return
	 */
	public static String doHttpGetSetCookie(String urlpath, String encoding) {
		HttpGet request = new HttpGet(urlpath);
		try {
			HttpParams httpParams = new BasicHttpParams();

			HttpConnectionParams.setConnectionTimeout(httpParams, CONNECTIONTIMEOUT);

			HttpConnectionParams.setSoTimeout(httpParams, SOCKETTIMEOUT);
			if (defaultHttpClient == null) {
				defaultHttpClient = new DefaultHttpClient(httpParams);
			}
			if (cookieStore != null) {
				defaultHttpClient.setCookieStore(cookieStore);
			}
			HttpResponse response = defaultHttpClient.execute(request);
			cookieStore = defaultHttpClient.getCookieStore();
			if (response.getStatusLine().getStatusCode() == 200) {
				Header str = response.getLastHeader("content-type");
				if(str!=null&&str.toString().contains("text/html")){
					System.out.println(response.getLastHeader("content-type"));
				}
				String string = EntityUtils.toString(response.getEntity(), encoding);
				return string;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 带cookie的post提交
	 * 
	 * @param uri
	 * @param params
	 * @return
	 */
	public static String doHttpPostSetCookie(String uri, List<NameValuePair> params) {
		HttpPost hp = new HttpPost(uri);
		try {
			if (params != null) {
				hp.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
			}
			if (defaultHttpClient == null) {
				defaultHttpClient = new DefaultHttpClient();
			}

			defaultHttpClient.getParams().setParameter("http.connection.timeout", CONNECTIONTIMEOUT);

			defaultHttpClient.getParams().setParameter("http.socket.timeout", SOCKETTIMEOUT);
			if (cookieStore != null) {
				defaultHttpClient.setCookieStore(cookieStore);
			}
			HttpResponse response = defaultHttpClient.execute(hp);
			cookieStore = defaultHttpClient.getCookieStore();
			if (response.getStatusLine().getStatusCode() == 200) {
				HttpEntity entity = response.getEntity();
				String string = EntityUtils.toString(entity,"UTF-8");
				return string;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static void main(String[] args) {
		login();
	}

 
	private static void login() {
		List<NameValuePair> params = new ArrayList<NameValuePair>();
		params.add(new BasicNameValuePair("j_username", "admin"));
    	params.add(new BasicNameValuePair("j_password", "123456"));
    	String str = HttpUtil.doHttpPostSetCookie("http://127.0.0.1/j_spring_security_check",params);
    	System.out.println(str);
	}




你可能感兴趣的:(java模拟http请求)