Android自定义的网络连接工具类HttpUtil

本文详细介绍了Android网络连接工具类HttpUtil的使用方法,包括如何通过get和post方法发送请求及接收服务器端JSON数据。具体展示了发送GET和POST请求的实现过程,以及如何解析返回的字符串结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android网络连接工具类HttpUtil


该工具实现了发送get和post请求,请求的结果以String字符串的形式返回,比较适合接收服务器端发送过来的JSON字符串数据

get方法适合从服务器端获取数据

post方法适合发送数据到服务器端


使用的时候直接调用get或post方法就好

get方法传递一个url请求

post方法传递一个url请求和要发送到服务器端的数据params


接收数据后返回的是一个String字符串


HttpUtil.java

public class HttpUtil{
	/**
	 * POST方法提交HTTP请求,返回请求的结果
	 * 
	 * @param url
	 * @param params
	 * @return 请求结果
	 * @throws IOException
	 */
	public static String sendPost(String url, String params) throws IOException {
		StringBuffer result = new StringBuffer();

		// 创建URL对象
		URL _url = new URL(url);
		// 创建HTTP连接
		/**
		 * 使用.openConnection()方法实例化一个URLConnection对象
		 * */
		HttpURLConnection conn = (HttpURLConnection) _url.openConnection();
		
		// 以下设置网络连接的相关参数
		/* 使用POST方法进行请求传递时,必须定义setDoInput和setDoOutput方法 */
		// 设置输入可用
		conn.setDoInput(true);
		// 设置输出可用
		conn.setDoOutput(true);

		// 设置不使用缓存
		conn.setUseCaches(false);
		// 设置连接超时的时间 - 5s
		conn.setConnectTimeout(5000);
		// 设置读取超时的时间 - 5s
		conn.setReadTimeout(5000);
		// 设置HTTP请求的方法 - POST
		conn.setRequestMethod("POST");
		// 设置HTTP请求属性 - 连接方式:保持
		conn.setRequestProperty("Connection", "Keep-Alive");
		// 设置HTTP请求属性 - 字符集:UTF-8
		conn.setRequestProperty("Charset", "UTF-8");
		// 设置HTTP请求属性 - 传输内容的类型 - 简单表单
		conn.setRequestProperty("Content-Type",
				"application/x-www-form-urlencoded");
		// 设置HTTP请求属性 - 传输内容的长度
		conn.setRequestProperty("Content-Length",
				String.valueOf(params.length()));
		// 设置HTTP请求属性 - 用户代理
		conn.setRequestProperty("User-Agent",
				"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0");
		// 发送参数 ,采用字符流发送数据
		PrintWriter pw = new PrintWriter(conn.getOutputStream());
		pw.write(params);
		pw.flush();
		pw.close();
		// 获取返回的结果
		if (200 == conn.getResponseCode()) {// 判断状态码
			// 读取服务器返回的 结果 - 字符流
			BufferedReader br = new BufferedReader(new InputStreamReader(
					conn.getInputStream()));
			// 每次读取一行
			String line;
			while((line = br.readLine()) != null){
				result.append(line);
			}
		}
		// 关闭HTTP连接
		conn.disconnect();
		return result.toString();
	}

	/**
	 * GET方法提交HTTP请求,返回请求的结果
	 * @param url
	 * @return 请求的结果
	 * @throws IOException
	 */
	public static String sendGet(String url) throws IOException {

		StringBuffer result = new StringBuffer();
		// 创建URL对象
		URL _url = new URL(url);
		// 创建HTTP连接
		HttpURLConnection conn = (HttpURLConnection) _url.openConnection();
		// 设置网络连接的相关参数
		// 设置输入可用
		conn.setDoInput(true);
		// 设置输出可用
		conn.setDoOutput(true);
		// 设置不使用缓存
		conn.setUseCaches(false);
		// 设置连接超时的时间 - 5s
		conn.setConnectTimeout(5000);
		// 设置读取超时的时间 - 5s
		conn.setReadTimeout(5000);
		// 设置HTTP请求的方法 - GET
		conn.setRequestMethod("GET");
		// 设置HTTP请求属性 - 连接方式:保持
		conn.setRequestProperty("Connection", "Keep-Alive");
		// 设置HTTP请求属性 - 字符集:UTF-8
		conn.setRequestProperty("Charset", "UTF-8");
		// 设置HTTP请求属性 - 用户代理
		conn.setRequestProperty("User-Agent",
				"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0");
		// 获取返回的结果
		if (200 == conn.getResponseCode()) {// 判断状态码
			BufferedReader br = new BufferedReader(new InputStreamReader(
					conn.getInputStream()));
			// 每次读取一行
			String line;
			while((line = br.readLine()) != null){
				result.append(line);
			}
		}
		// 关闭HTTP连接
		conn.disconnect();
		return result.toString();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值