import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.URIException; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; import org.apache.commons.httpclient.util.URIUtil; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Map; /** * HTTP工具箱 * * @author leizhimin 2009-6-19 16:36:18 */ public final class HttpTookit { private static Log log = LogFactory.getLog(HttpTookit.class); /** * 执行一个HTTP GET请求,返回请求响应的HTML * * @param url 请求的URL地址 * @param queryString 请求的查询参数,可以为null * @param charset 字符集 * @param pretty 是否美化 * @return 返回请求响应的HTML */ public static String doGet(String url, String queryString, String charset, boolean pretty) { StringBuffer response = new StringBuffer(); HttpClient client = new HttpClient(); HttpMethod method = new GetMethod(url); try { if (StringUtils.isNotBlank(queryString)) //对get请求参数做了http请求默认编码,好像没有任何问题,汉字编码后,就成为%式样的字符串 method.setQueryString(URIUtil.encodeQuery(queryString)); client.executeMethod(method); if (method.getStatusCode() == HttpStatus.SC_OK) { BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), charset)); String line; while ((line = reader.readLine()) != null) { if (pretty) response.append(line).append(System.getProperty("line.separator")); else response.append(line); } reader.close(); } } catch (URIException e) { log.error("执行HTTP Get请求时,编码查询字符串“" + queryString + "”发生异常!", e); } catch (IOException e) { log.error("执行HTTP Get请求" + url + "时,发生异常!", e); } finally { method.releaseConnection(); } return response.toString(); } /** * 执行一个HTTP POST请求,返回请求响应的HTML * * @param url 请求的URL地址 * @param params 请求的查询参数,可以为null * @param charset 字符集 * @return 返回请求响应的HTML */ public static String doPost(String url, Map<String, String> params, String charset) { StringBuffer response = new StringBuffer(); HttpClient client = new HttpClient(); PostMethod method = new PostMethod(url); //设置Http Post数据 if (params != null) { NameValuePair[] data = new NameValuePair[5]; int i=0; HttpMethodParams p = new HttpMethodParams(); for (Map.Entry<String, String> entry : params.entrySet()) { data[i]=new NameValuePair(entry.getKey(), entry.getValue()); i++; } method.setRequestBody(data); } try { client.executeMethod(method); if (method.getStatusCode() == HttpStatus.SC_OK) { System.out.println("OK"); }else{ System.out.println(method.getStatusCode()); } } catch (IOException e) { log.error("执行HTTP Post请求" + url + "时,发生异常!", e); } finally { method.releaseConnection(); } return response.toString(); } public static void main(String[] args) { String y = doGet("http://video.sina.com.cn/life/tips.html", null, "GBK", true); System.out.println(y); } }
另外,将查看Java平台环境的代码给出来,很常用!
public static void main(String[] args) { Properties p = System.getProperties(); for (Map.Entry<Object, Object> entry : p.entrySet()) { System.out.println(entry.getKey() + " = " + entry.getValue()); } }
用到的包随文上传了。这个用的是HttpClient 3.1 版本
相关推荐
httpclient实现的工具类含有以下功能: 1、后台模拟发送GET请求 2、后台模拟发送POST请求 3、解决了中文乱码
NULL 博文链接:https://xieke90.iteye.com/blog/2259953
java HttpClient 发送GET请求和带有表单参数的POST请求教程例子
Java 模拟Ajax POST GET 提交代码,实测很好用。
java发送get,post请求,可以实现与后台交互,代码便捷高效,是原生代码,支持并发性;代码结构清晰易懂,容易上手;
java模拟HTTP发送post和get请求工具类,使用httpClient类
java后台实现 get post 提交.zip
是一个Java 发送http put、delete、 post、 get 请求的工具类。可用在与restful service 进行通讯的代码中。
运行环境jdk1.6,使用时,根据实际情况修改: map.put("userId", "320"); String temp = HttpTest.doPost("http://www.test.com/submit.jsp", map, "GBK");
主要介绍了Java模拟HTTP Get Post请求,轻松实现校园BBS自动回帖,感兴趣的小伙伴们可以参考一下
主要介绍了Java模拟HTTP Get Post请求实现论坛自动回帖功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了java使用httpclient模拟post请求和get请求示例,需要的朋友可以参考下
在Java中使用HttpClient模拟POST请求或者GET请求,使用的是信易通的短信平台接口,一般的情况下都是POST请求(post请求安全,可靠,信息不会在地址栏显示出来),然后(看短信平台要求,),调用短信平台提供的接口...
java模拟网络请求,get post put delete四种模式,请求头处理参数处理。此文件仅供大家参考,稍作修改即可。
模拟http请求实现文件上传,模拟doGet、doPost请求,实现信息发送
本代码只适合有java经验者使用,请先看readme.md 部分功能有 1.getip 请使用类似熊猫代理填充代理ip,为节省费用,做了文件缓存 2.由于iboxApi接口数据是加密的,使用selenium调用了网站里的js(window.de)解密方法 3....
Java模拟发送get请求 Java模拟发送post请求 HTTP工具 返回值统一为String,所以请求接口要注意为 返回为json或者xml的接口。
http json 模拟请求工具,可以发送http请求,并且可选择发送请求的类型,可以发送json数据。
模拟HTTP协议,Java 发送 http 请求 (get 与 post 方法请求 ) , 以下代码经本人亲自调试可用! 可以直接使用之。 注意:通过 BufferedReader 读取远程返回的数据时,必须设置读取编码,否则中文会乱码!