`
wangfeiaini
  • 浏览: 53392 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java网络请求工具方法

阅读更多
public final class EasyHttp {

	private static int TIMEOUT = 10000;

	// post请求
	public static String post(String url, Map<String, String> paramMap) {
		HttpURLConnection conn = null;
		String resultStr = null;
		try {
			URL urlA = new URL(url);
			conn = (HttpURLConnection) urlA.openConnection();
			conn.setConnectTimeout(TIMEOUT);// 连接超时 单位毫秒
			conn.setReadTimeout(TIMEOUT);// 读取超时 单位毫秒
			// 设置是否向connection输出,因为这个是post请求,参数要放在 http正文内,因此需要设为true
			conn.setDoOutput(true);
			// Read from the connection. Default is true.
			conn.setDoInput(true);
			// Set the post method. Default is GET
			conn.setRequestMethod("POST");
			// Post 请求不能使用缓存
			conn.setUseCaches(false);
			// 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
			conn.setRequestProperty("Content-Type",
					"application/x-www-form-urlencoded");

			String paramStr = mapToString(paramMap);
			byte[] bypes = paramStr.getBytes("UTF-8");
			conn.connect();
			OutputStream out = conn.getOutputStream();
			out.write(bypes);// 输入参数
			out.flush();
			out.close();
			resultStr = returnFromUrl(conn);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			conn.disconnect();
		}
		return resultStr;
	}

	
	// get请求
	public static String get(String url, Map<String, String> paramMap) {
		HttpURLConnection conn = null;
		String resultStr = null;
		try {
			if (Assert.isNotEmptyMap(paramMap)) {
				String paramStr = mapToString(paramMap);
				// 如果不包含?
				if (!url.contains("?")) {
					url = url + "?";
				}
				// 如果结尾不是&?
				char lastChar = url.charAt(url.length() - 1);
				if ('&' != lastChar && '?' != lastChar) {
					paramStr = "&" + paramStr;
				}
				url = url + paramStr;
			}
			URL urlA = new URL(url);
			conn = (HttpURLConnection) urlA.openConnection();
			conn.setConnectTimeout(TIMEOUT);// 连接超时 单位毫秒
			conn.setReadTimeout(TIMEOUT);// 读取超时 单位毫秒
			conn.setDoOutput(true);
			conn.setDoInput(true);
			conn.setRequestMethod("GET");
			conn.setUseCaches(false);
			//conn.setRequestProperty("User-Agent", "");
			resultStr = returnFromUrl(conn);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			conn.disconnect();
		}
		return resultStr;
	}

	// 从url连接中取得返回值
	public static String returnFromUrl(HttpURLConnection conn) {
		String result = null;
		BufferedReader reader = null;
		try {
			// 取得输入流,并使用Reader读取
			reader = new BufferedReader(new InputStreamReader(
					conn.getInputStream()));
			StringBuffer buff = new StringBuffer();
			String oneLine = null;
			while ((oneLine = reader.readLine()) != null) {
				buff.append(oneLine);
			}
			result = buff.toString();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				reader.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return result;
	}

	// 将参数转为字符串
	public static String mapToString(Map<String, String> map) {
		if (Assert.isEmptyMap(map)) {
			return "";
		}
		Set<String> set = map.keySet();
		StringBuffer buf = new StringBuffer();
		for (String key : set) {
			String value = map.get(key);
			if (null != value) {
				String valueEn = null;
				try {
					valueEn = URLEncoder.encode(value, "UTF-8");
				} catch (Exception e) {
					e.printStackTrace();
				}
				buf.append(key).append("=").append(valueEn).append("&");
			}
		}
		buf.deleteCharAt(buf.length() - 1);
		return buf.toString();
	}

	private EasyHttp() {
	}
	

 

分享到:
评论

相关推荐

    java网络请求工具类 HttpURLConnection

    java网络请求工具类 HttpURLConnection post请求工具类HttpURLConnection httpURLConnection = (HttpURLConnection) url .openConnection(); httpURLConnection.setRequestMethod("POST");// 提交模式

    JAVA 发送http请求工具类

    Java发送http请求、https请求,post和get都支持

    Https请求工具类,Java实现http请求,https请求

    Https请求工具类,Java实现http请求,https请求

    JAVA http请求工具类

    JAVA http请求工具类

    HTTP兼容HTTPS请求工具类

    Java Http 工具类,和Https工具类,自动识别Https走SSL协议

    java 实现http请求的四种方式工具类

    java模拟网络请求,get post put delete四种模式,请求头处理参数处理。此文件仅供大家参考,稍作修改即可。

    java中ping命令ping工具类(循环ping)

    java中ping命令ping工具类(循环ping) java ping ip ping命令 ping工具类 支持linux和windows等所有平台 Ping是Windows下的一个命令 在Unix和Linux下也有这个命令。 ping也属于一个通信协议,是TCP/IP协议的一部分 ...

    HTTP网络请求框架

    3:通过公有方法进行网络请求,示例如下: &gt;文本请求: &gt;解析后的文本请求: HttpRequest.reqquest(int,String,Parse,Class){....}; &gt;原生string文本请求: HttpRequest.getString(String,AqsString){...} &gt;单张图片...

    tcp转发工具,中转TCP请求

    可用于中转tcp请求,java源码 已放入,简单入门

    获取Ip地址的Java工具类

    通过该工具类可以获得请求的IP地址,适用于后台管理系统的信息统计。

    Java-IpUtil通过请求获取IP信息的工具类

    内容概要:要工具类将接口请求解析以获取请求的IP地址信息。内含Ip2regionSearcher工具类的使用方式,可以通过使用Ip2regionSearcher将获取到的IP地址信息,进一步解析得到IP属地信息。 适应人群:有需要获取请求IP...

    Cubic java应用诊断工具.rar

    VisualVM是一个java应用程序性能分析和运行监控工具,可以监控、分析线程信息,其默认监视内存和CPU,常用于监测、控制java应用程序横跨整个网络的情况。 2.YourKit YourKit是一个java性能分析工具,使用YourKit...

    Java中Http请求的工具类

    向指定URL发送GET方法的请求 获取网络图片返回byte数组 向指定 URL 发送POST方法的请求 向指定URL发送POST方法的请求(application/json格式发送数据) 向指定URL发送POST方法的请求(application/xml格式发送数据)...

    IP地址HTTP请求工具类

    获取本地IP地址,获取本地Host名称,获取Linux下的IP地址,获取用户真实IP地址,get/post请求 相应的工具类

    HttpClient发送http请求(post和get)需要的jar包+内符java代码案例+注解详解

    HttpClient发送http请求(post+get)需要的jar包+内符java代码案例+注解详解(这款工具类是我精心挑选适合广大java程序猿使用)

    java开发常用工具类

    对日历,时间,下载excel,网络请求,流,数据,数值,xml,web工具类

    基于JavaFX构建简易Http请求工具(Java)

    一个基于JavaFX图形框架构建的简易Http请求工具,目前实现了GET, POST, PUT, DELETE四种Http请求方式 注意事项 当表中没有数据行可以输入时,点击表格可以添加一行空数据 GET, DELETE请求不支持发送请求体以及上传...

    java源码包---java 源码 大量 实例

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    okHttp请求工具类

    一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso)[2] 用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient,现在已经打不...

    Http连接池工具类

    对于网络请求这种底层相对复杂的操作,个人以为如果有可用的其他方案,也没有必要自己去管理连接对象。 除了HttpURLConnection,大家肯定还知道HttpClient。一般情况下,普通使用HttpClient已经能满足我们的需求,...

Global site tag (gtag.js) - Google Analytics