HttpClient模拟请求
来源:互联网 发布:金灿荣奚落公知视频 编辑:程序博客网 时间:2024/06/06 16:50
HttpClient
模拟使用POST请求
private static HttpClient httpClient = new HttpClient();private String loginUrlCode(String code, String cookie, String username, String password, String login_url) { String flag = null; try { // 解决HTTP --> HTTPS Protocol myHttps = new Protocol("https", new MySecureProtocolSocketFactory(), 443); Protocol.registerProtocol("https", myHttps); if ("true".equals(config.getUseProxy())) { httpClient.getHostConfiguration().setProxy(config.getProxyHost(), NumberUtils.toInt(config.getProxyPort())); logger.info("使用代理..."); } // 绑定参数 org.apache.commons.httpclient.NameValuePair[] data = { new org.apache.commons.httpclient.NameValuePair("username", username), new org.apache.commons.httpclient.NameValuePair("password", password), new org.apache.commons.httpclient.NameValuePair("captcha", code), new org.apache.commons.httpclient.NameValuePair("auto_login", "1"), new org.apache.commons.httpclient.NameValuePair("return", login_url), new org.apache.commons.httpclient.NameValuePair("login_url", login_url) }; PostMethod postMethod = new PostMethod(login_url); postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "GBK"); postMethod.setRequestHeader("Cookie", cookie); postMethod.setRequestBody(data); int status = httpClient.executeMethod(postMethod); logger.error("状态: status: " + status); Cookie[] cookies = httpClient.getState().getCookies(); String captchaCookie = ""; for (Cookie c : cookies) { captchaCookie += c.toString() + ";"; } if (status == HttpStatus.SC_OK && (null != captchaCookie || !captchaCookie.equals(""))) { flag = captchaCookie; } // 302 if (status == HttpStatus.SC_MOVED_TEMPORARILY) { logger.error("getResponseBody: " + new String(postMethod.getResponseBody(), "UTF-8")); } postMethod.releaseConnection(); } catch (Exception e) { e.printStackTrace(); } return flag;}
模拟Get请求
GetMethod get = new GetMethod(url);get.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gb2312");// 模拟来源get.addRequestHeader("Referer","http://www.baidu.com");int statusCode = 0;try { statusCode = httpClient.executeMethod(get); if (statusCode == 200) { BufferedReader br = new BufferedReader(new InputStreamReader(get.getResponseBodyAsStream())); String line = null; StringBuffer sb = new StringBuffer(); while ((line = br.readLine()) != null) { sb.append(line); } br.close(); return sb.toString(); } else { throw new Exception(String.valueOf(statusCode)); }} catch (ConnectTimeoutException e1) { throw new Exception("访问超时,url:" + url + ", statusCode:" + statusCode + ", statusText:" + ", message:" + e1.getMessage());} catch (Exception e) { throw new Exception("请求失败,url:" + url + ", statusCode:" + statusCode + ", message:" + e.getMessage());} finally { try { get.releaseConnection(); } catch (Exception e) { e.printStackTrace(System.out); }}
阅读全文
0 0
- HttpClient模拟请求实例
- HttpClient模拟Post请求
- HttpClient模拟请求
- HttpClient模拟发送http请求
- HTTPCLIENT POST GET请求模拟
- Httpclient(模拟用户发送请求)
- 模拟浏览器请求 HttpClient入门
- httpClient模拟浏览器发请求
- httpClient模拟浏览器发请求
- HttpClient使用SESSIONID模拟用户发送请求
- commons-httpclient 服务端模拟客户端发送请求
- HttpClient使用SESSIONID模拟用户发送请求
- HttpClient模拟Post请求返回Byte数组
- HttpClient使用SESSIONID模拟用户发送请求
- HttpClient之模拟post请求示例
- HttpClient服务器模拟浏览器发送请求
- HttpClient设置请求头模拟浏览器
- HttpClient使用SESSIONID模拟用户发送请求
- 各种浏览器的Hack写法(chrome firefox ie等)
- 原生js实现ajax方法
- 数据库防注入
- 添加数据 过滤重复
- [NOIP2017模拟]拆网线
- HttpClient模拟请求
- 第八周项目字符串的加密
- Providing vertex data to vertex programs 向顶点程序提供顶点数据
- 【redis】核心函数API
- 头文件中定义变量的问题
- java程序员从笨鸟到菜鸟之(九)内部类
- java学习中的易错易忘知识点
- java设计模式
- MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什么区别?各适用于什么场合?