import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.Map; import java.util.Map.Entry; /** * * HTTP请求处理类 * * */ public class HttpUtils { public static final int GET = 1; public static final int POST = 2; /** * 默认的编码方式 */ private static final String DEFAULT_CHARSET = "utf-8"; /** * 默认的connect timeout 30s */ private static final int DEFAULT_CONNECT_TIMEOUT = 30000; /** * 默认的read timeout 30s */ private static final int DEFAULT_READ_TIMEOUT = 30000; /** * GET请求 * * @param url * @return * @throws Exception */ public static String doGet(String url) throws Exception { return service(url, GET, null, DEFAULT_CONNECT_TIMEOUT, DEFAULT_READ_TIMEOUT, null, true, DEFAULT_CHARSET); } /** * GET请求 * * @param url * @param timeout * @return * @throws Exception */ public static String doGet(String url, int timeout) throws Exception { return service(url, GET, null, timeout, timeout, null, true, DEFAULT_CHARSET); } /** * GET请求 * * @param url * @param params * @param timeout * @return * @throws Exception */ public static String doGet(String url, Map<String, String> params, int timeout) throws Exception { return service(url, GET, null, timeout, timeout, params, true, DEFAULT_CHARSET); } /** * POST请求 * * @param url * @param params * @return * @throws Exception */ public static String doPost(String url, Map<String, Object> params) throws Exception { return service(url, POST, params, DEFAULT_CONNECT_TIMEOUT, DEFAULT_READ_TIMEOUT, null, true, DEFAULT_CHARSET); } /** * POST请求 * * @param url * @param params * @param timeout * @return * @throws Exception */ public static String doPost(String url, Map<String, Object> params, int timeout) throws Exception { return service(url, POST, params, timeout, timeout, null, true, DEFAULT_CHARSET); } /** * POST请求 * * @param url * @param params * @param requestProps * @param useCaches * @return * @throws Exception */ public static String doPost(String url, Map<String, Object> params, Map<String, String> requestProps, int timeout, boolean useCaches) throws Exception { return service(url, POST, params, DEFAULT_CONNECT_TIMEOUT, DEFAULT_READ_TIMEOUT, requestProps, useCaches, DEFAULT_CHARSET); } /** * 发送http请求 * * @param url * @param type * @param params * @param charset * @return * @throws Exception */ public static String service(String url, int type, Map<String, Object> params, int conTimeout, int readTimeout, Map<String, String> requestProps, boolean useCaches, String charset) throws Exception { String response = null; HttpURLConnection con = null; try { URL urls = new URL(url); con = (HttpURLConnection) urls.openConnection(); if (requestProps != null) { for (Entry<String, String> entry : requestProps.entrySet()) { con.setRequestProperty(entry.getKey(), entry.getValue()); } } con.setUseCaches(useCaches); con.setDoInput(true); con.setDoOutput(true); con.setConnectTimeout(conTimeout); con.setReadTimeout(readTimeout); con.setRequestMethod(type == GET ? "GET" : "POST"); if (params != null && params.size() > 0) { OutputStream writer = null; try { writer = con.getOutputStream(); for (Entry<String, Object> entry : params.entrySet()) { String x = entry.getKey() + "=" + entry.getValue() + "&"; writer.write(x.getBytes()); } } finally { if (writer != null) { writer.close(); } } } int code = con.getResponseCode(); if (code == 200) { BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader( con.getInputStream(), charset)); StringBuffer buf = new StringBuffer(); int count = -1; char[] tmp = new char[4096]; while ((count = reader.read(tmp)) != -1) { buf.append(new String(tmp, 0, count)); } response = buf.toString(); } finally { if (reader != null) { reader.close(); } } } else { handeException(String.valueOf(code), url); } } catch (Exception e) { handeException(e.getMessage(), url); } finally { if (con != null) { con.disconnect(); } } return response; } private static void handeException(String tip, String url) throws Exception { String errorInfo = StringUtils.format( "Http request failed(%1$s), url:%2$s", tip, shortenUrl(url)); throw new Exception(errorInfo); } }
相关推荐
java代码-使用java解决http请求SOAP webService接口的源代码 ——学习参考资料:仅用于个人学习使用!
使用java的UrlConnection实现的简单的HTTP请求。
根据网站上的url进行请求http后返回,解析处理代码,学习参考
JAVA调用HttpClient进行HTTP请求,亲测通过,内含测试程序(已测试get和post成功)。
直接拷到项目就可以用,跨服务器请求,并处理返回结果中的中文
在java中发出web请求用到的类库,包含org.apache.http.impl.client.HttpClients,org.apache.http.client.methods.HttpGet,org.apache.http.client.methods.CloseableHttpResponse等相关的类
在JAVA中如何用SERVLET处理Http Post的表单请求xml
基于java socket发送http请求。这种原生的发送请求的方式能适合一些特定场景,比如: A向B发送请求,A不考虑B是否处理成功,即A不关注B的响应结果,那么A就不用阻塞等B的回应。 传统的Httpclient请求方式都是阻塞...
java模拟网络请求,get post put delete四种模式,请求头处理参数处理。此文件仅供大家参考,稍作修改即可。
java组件开发(18)HTTP请求与参数处理
本资源库提供了一份完整的JAVA客户端发送POST请求的示例代码,可以帮助您快速了解如何使用JAVA客户端发送POST请求,同时也适用于其他HTTP请求类型。 我们的示例代码包括以下主要部分: 创建HTTP连接:使用Java.net...
WINDOW环境下用JAVA实现WEB服务器_MultiWebServer....(1)处理一个http请求 (2)接收并解析http请求 (3)从服务器文件系统中获得被请求的文件 (4)创建一个包括被请求的文件的http响应信息 直接发送该信息到客户端
实际的业务开发中,有的时候我们更期望的结果是:不管你服务端是超时了还是服务不存在,我们都应该获得最终的请求结果(HTTP请求结果状态400、500),而不是获得一个抛出的异常。 二、源码解析-默认实现 首先我要说...
对request请求进行拦截,对请求参数修改。常用于前台提交表单参数关键字的过滤。此工具可以对参数拦截并转义后提交到对应的处理类。 除了添加两个JsFilter.java和GetHttpServletRequestWrapper.java之外,需要在web....
Java的世界里,HttpClient 是一个功能强大的Http请求库,然而接口非常复杂,设计上遵从正交性,简单的请求也需要写比较多的代码,更不要说隐藏在各种细节里面的高级用法了。Requests, 是一个模仿python requests ...
5)本demo可以直接运行 本来想测试protobuf进行数据处理的 要放在github上就改成json了(entity中有简单的xml解析:Menu.java 其他的都是json的 json 也可用Gson更方便) 博客链接使用说明:...
java.awt.event 提供处理由 AWT 组件所激发的各类事件的接口和类。 java.awt.font 提供与字体相关的类和接口。 java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im ...
对项目中的所有参数去除前后空格过滤,统一处理参数!可以基于此过滤器实现过滤跨站脚本攻击,参数的增加,修改!敏感词汇过滤。实现原理为重写HttpServletRequestWrapper,获取参数的方法。include和 Forwarded ...
演示了过滤器捕获客户端发送的request请求,并对request请求进行分析处理,从而让后台得到处理后的请求
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...