使用org.apache.commons.httpclient
2016-11-05 16:52
423 查看
这里是get请求
这里是post请求
import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.codec.digest.DigestUtils; 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.params.HttpMethodParams; import org.apache.commons.lang.StringUtils; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.TypeReference; public class GetDataTest { public static void main(String[] args) { String url = "http://xx/xx/xx"; SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String date = sdf.format(new Date()); String sec = DigestUtils.md5Hex("XTPT" + date).toUpperCase(); // 构造HttpClient实例 HttpClient client = new HttpClient(); // 构造请求方法的实例 GetMethod method = new GetMethod(url + "?Ck=" + sec); client.getParams().setContentCharset("UTF-8"); // 使用系统提供的默认的恢复策略 client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=UTF-8"); int statusCode = -1; try { // 获取返回的状态码 statusCode = client.executeMethod(method); if (statusCode != HttpStatus.SC_OK) { throw new IllegalStateException("Method failed: " + method.getStatusLine()); } // 获取返回的结果 String result = method.getResponseBodyAsString(); // 转换的目标类型 TypeReference<List<Map<String, String>>> tr = new TypeReference<List<Map<String, String>>>() { }; if (StringUtils.isNotEmpty(result) && !result.equals("Error")) { // 解析JSON数据成目标类型 List<Map<String, String>> dataList = new ObjectMapper().readValue(result, tr); for (Map<String, String> map : dataList) { System.out.println(map); } } else { System.err.println("无法获取请求结果,请检查"); } } catch (HttpException e) { // 发生致命的异常,可能是协议不对或者返回的内容有问题 System.out.println("Please check your provided http address!"); } catch (IOException e) { // 发生网络异常 e.printStackTrace(); } finally { method.releaseConnection(); } } }
这里是post请求
import java.io.IOException; 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.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class PostDataTest { private final static String Url = "http://xx"; private final static String account = "cf_123456"; private final static String password = "afcac35b6bf4b4e040feeaabf38ae78c"; private final static String telephone = "13911111111"; public static void main(String[] args) { HttpClient client = new HttpClient(); PostMethod method = new PostMethod(Url); client.getParams().setContentCharset("UTF-8"); client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=UTF-8"); int mobile_code = (int) ((Math.random() * 9 + 1) * 100000); String content = new String("您的验证码是:" + mobile_code + "。请不要把验证码泄露给其他人。"); // 短信参数 NameValuePair[] data = { new NameValuePair("account", account), new NameValuePair("password", password), new NameValuePair("mobile", telephone), new NameValuePair("content", content), }; method.setRequestBody(data); try { int statusCode = client.executeMethod(method); if (statusCode != HttpStatus.SC_OK) { throw new IllegalAccessError("HttpMethod Failed"); } String SubmitResult = method.getResponseBodyAsString(); Document doc = DocumentHelper.parseText(SubmitResult); Element root = doc.getRootElement(); String code = root.elementText("code"); if (code.equals("2")) { System.out.println("发送成功"); } } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } } }
相关文章推荐
- 什么是httpclient?& Httpclient使用前提----下载org.apache.commons.httpclient,导入Httpclient的jar包
- org.apache.commons.lang.StringUtil的使用(转帖)
- org.apache.commons.digester.Digester使用
- java 发送邮件 例子 (带附件的) 使用org.apache.commons.mail
- 使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持
- 使用org.apache.commons.beanutils个人感受
- 使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持
- 使用json-lib-2.1.jar报,org.apache.struts2.json.JSONWriter can not access a member of class org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper with modifiers "public"-转载
- org.apache.commons.digester.Digester使用 [待续]
- java 发邮件 例子(HTML内容) 使用org.apache.commons.mail
- 使用org.apache.commons.mail发送邮件
- 使用json-lib-2.1.jar报,org.apache.struts2.json.JSONWriter can not access a member of class org.apache.commons.dbcp.PoolingDataSourc
- org.apache.commons.lang.StringUtil的使用(转帖)
- 使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续
- org.apache.commons.io使用实例
- org.apache.commons.net.ftp.FTPClient使用
- 使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持
- 使用org.apache.commons.mail 发送邮件(转)
- 我使用MyEclipse时,用ssh时,applicationContext出错提示说:class "org.apache.commons.dbcp.BasicDataSource" not found.
- org.apache.commons.httpclient 访问需要验证的webservice的一些问题