`
wangfeiaini
  • 浏览: 54799 次
  • 性别: 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() {
	}
	

 

分享到:
评论

相关推荐

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

    Https请求工具类,Java实现http请求,https请求 本篇文章将详细介绍如何使用Java语言实现Http和Https请求的工具类,包括如何建立Https连接、如何实现Post请求、如何处理SSL验证等内容。 在Java中,使用...

    Java实现的Https请求工具类

    综上所述,Java实现的HTTPS请求工具类通常会封装以上步骤,提供简洁的API供其他模块调用。通过这个工具类,开发者可以轻松地发起HTTPS请求,获取服务器响应,并进行数据交互,同时确保通信过程的安全性。在实际项目...

    Java发 Https请求工具类 支持SSL

    这个Java HTTPS请求工具类是微信内部使用的,因此可能已经针对微信服务进行了优化,适用于那些需要与微信API进行安全通信的场景。使用该工具类可以大大简化代码,提高开发效率,同时确保数据传输的安全性。通过阅读...

    Java Https工具类,Java Https Post请求

    这个“Java Https工具类,Java Https Post请求”可能是一个自定义的类,用于简化发送HTTPS POST请求的过程。以下是对这个主题的详细讲解: 1. **HTTPS基础**: - HTTPS是在HTTP上添加了SSL/TLS(Secure Sockets ...

    java网络请求工具类 HttpURLConnection

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

    JAVA 发送http请求工具类

    这些类和方法的组合,可以构建出一个强大的Java HTTP/HTTPS请求工具库,能够灵活地处理各种网络请求任务。开发者可以根据需求选择使用内置的`HttpURLConnection`,或者引入Apache HttpClient等第三方库,以实现更...

    java发送http请求工具类

    然而,为了提高代码的可复用性和易用性,这个工具类通常会封装成一个静态方法,接收请求URL、方法、参数等作为参数,返回响应结果。此外,还可以添加异常处理,处理网络错误、超时等问题。 请注意,虽然`...

    网络请求工具类

    本篇将详细解析"网络请求工具类"所涵盖的知识点,包括原生的HttpClient、HttpUrlConnection、Xutils以及Volley框架的网络请求。 1. **原生的HttpClient** Android原生支持的HttpClient库是Apache HttpClient,它...

    java Tcp 客户端工具类 java Tcp 客户端工具类

    java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java ...

    JAVA http请求工具类

    总之,一个良好的Java HTTP请求工具类应该易于使用,具有灵活性,能够处理各种HTTP请求类型,并能有效地处理网络异常和响应数据。通过理解这些基本概念和最佳实践,开发者可以构建出强大的网络通信模块。

    基于Java网络聊天工具设计研究.pdf

    基于Java网络聊天工具的设计研究 Java网络聊天工具的设计研究是信息技术领域的重要课题之一,尤其在当今的信息时代,互联网技术的广泛渗透使得网络聊天工具成为人们日常生活中不可或缺的组成部分。相较于传统的面...

    java-http请求jar包

    在Java中,Apache HttpClient库是一个强大的工具,它允许开发者高效、灵活地处理HTTP请求。这个"java-http请求jar包"实际上就是Apache HttpClient的4.5.5版本,一个包含了所有必要组件的压缩文件。 Apache ...

    HTTP兼容HTTPS请求工具类

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

    java后端请求HTTP需要用到的jar包及其测试方法(get和post)

    总结来说,利用Apache HttpClient进行Java后端的HTTP请求,需要依赖一系列Apache Commons库,这些库提供了从网络通信到数据处理的全面支持。了解每个库的功能和正确使用HttpClient的API,可以高效地实现各种HTTP请求...

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

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

    java 发送https 请求 证书

    本文将详细讲解如何在Java中处理这类问题,以及如何使用httpUtils工具进行HTTPS请求。 首先,解决数组证书问题的关键在于正确地配置Java的TrustStore。Java的TrustStore包含了系统信任的根证书,如果服务器的证书不...

    JAVA对象以及数据的工具类

    这些类提供了丰富的工具方法,可以方便地进行日期的计算、格式化和解析。在Java 8之前,SimpleDateFormat和Calendar是常用的日期处理工具。 在并发编程中,ThreadUtils(如Guava库提供的)可以用来管理线程,如创建...

    Java网络编程/Java网络编程实例

    8. **多线程处理**:在处理网络请求时,多线程技术常被用来并发处理多个连接。Java的Thread类和ExecutorService接口提供了丰富的多线程工具。 9. **异常处理**:网络编程中常见的异常有IOException、...

Global site tag (gtag.js) - Google Analytics