日期:2014-05-20 浏览次数:20931 次
HttpClient client = new HttpClient(); client.getHostConfiguration().setHost( "localhost" , 7001, "http" ); /** * 模拟登陆门户系统 */ PostMethod post = new PostMethod( "/wwt/login" ); NameValuePair name = new NameValuePair( "username" , "pengxl"); NameValuePair pass = new NameValuePair( "password" , "qqqq"); post.setRequestBody( new NameValuePair[]{name,pass}); client.executeMethod(post); /** * 登录后的相关跳转 */ System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); int status = post.getStatusCode(); boolean flag = true; if ((status == HttpStatus.SC_MOVED_TEMPORARILY) || (status == HttpStatus.SC_MOVED_PERMANENTLY) || (status == HttpStatus.SC_SEE_OTHER) || (status == HttpStatus.SC_TEMPORARY_REDIRECT)){ flag = true; }else{ flag = false; } GetMethod get = new GetMethod(); int i = 0; while(flag){ i++; System.out.println("第"+i+"步"); Header header = post.getResponseHeader("location"); if (header != null) { String newuri = header.getValue(); if ((newuri == null) || (newuri.equals(""))) newuri = "/"; get=new GetMethod(newuri); // get.setRequestHeader("Cookie",cookies.toString()); client.executeMethod(get); // cookies=client.getState().getCookies(); status = get.getStatusCode(); if ((status == HttpStatus.SC_MOVED_TEMPORARILY) || (status == HttpStatus.SC_MOVED_PERMANENTLY) || (status == HttpStatus.SC_SEE_OTHER) || (status == HttpStatus.SC_TEMPORARY_REDIRECT)){ flag = true; }else{ flag = false; } } } HttpParams httpParams = client.getParams(); String htmlvalue = new String(get.getResponseBodyAsString()); PrintWriter out = response.getWriter(); out.write(htmlvalue);
public static void main(String[] args) { HttpClient client = new HttpClient(); NameValuePair[] nameValuePairs = { new NameValuePair("username", "aaa"), new NameValuePair("passwd", "123456") }; PostMethod postMethod = new PostMethod("登录url"); postMethod.setRequestBody(nameValuePairs); int stats = 0; try { stats = client.executeMethod(postMethod); } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } postMethod.releaseConnection();//这里最好把之前的资源放掉 CookieSpec cookiespec = CookiePolicy.getDefaultSpec(); Cookie[] cookies = cookiespec.match("域名", 80/*端口*/, "/" , false , client.getState().getCookies()); for (Cookie cookie : cookies) { System.out.println(cookie.getName() + "##" + cookie.getValue()); } HttpMethod method = null; String encode = "utf-8";//页面编码,按访问页面改动 String referer = "http://域名";//http://www.163.com method = new GetMethod("url2");//后续操作 method.getParams().setParameter("http.useragent","Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)"); method.setRequestHeader("Referer", referer); client.getParams().setContentCharset(encode); client.getParams().setSoTimeout(300000); client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(10, true)); try { stats = client.executeMethod(method); } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if (stats == HttpStatus.SC_OK) { System.out.println("提交成功!"); } }