云从科技人脸识别发送http请求工具类

本文介绍了一个实用的HTTP工具类,该工具类支持POST请求并能处理中文参数编码问题,通过示例代码展示了如何构建参数字符串及发送POST请求,同时解析响应结果。

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

    下面代码为本人项目实际应用代码工具类:


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Map;

/**
 * 
 * 
 */
public class HttpUtils {

	
	private static String CHARSET="UTF-8"; //字符集


	
	/***
	 *    生成提交参数
	 * @param paraMap
	 * @return
	 */
	private static String buildParam(Map paraMap)
	{
		if(null==paraMap||paraMap.size()==0)
		{
			return "";
		}
		try
		{
			StringBuffer buildStr=new StringBuffer();
			for(Object obj:paraMap.keySet())
			{
				buildStr.append(obj.toString()+"="+URLEncoder.encode(paraMap.get(obj.toString()).toString(),CHARSET));// 采用encode方式避免入参中文乱码
				buildStr.append("&");
			}
			String temp=buildStr.toString();
			return temp.substring(0,temp.length()-1);
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
			return "encode-error"; //表示UTF编码失败
		}
	}

	/**
	 * 
	 * 简化post入参操作
	 * @param url
	 * @param paraMap
	 * @return
	 * @throws Exception
	 */
	public static String postUrl(String url,Map paraMap)throws Exception
	{
			return postUrl(url,paraMap,"");
	
	}
	/**提交url参数
	 * dmq 20140710
	 * @param url
	 * @param mapMap
	 * @param session
	 * @return
	 */
	public static String postUrl(String url,Map paraMap,String session)throws Exception
	{
		URL reqUrl=new URL(url);
		HttpURLConnection conn = (HttpURLConnection)reqUrl.openConnection();
		conn.setDoOutput(true); //因为是post请求,参数要放在http正文内,为true则表示参数放正文内
		conn.setDoInput(true);//设置是否通conn读入,默认情况是true
		conn.setUseCaches(false);//Post不能使用缓存
		conn.setRequestMethod("POST");//post方法
		//conn.setRequestProperty("charset", CHARSET);
		conn.addRequestProperty("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
		//设置超时时间
		conn.setConnectTimeout(50000);
		conn.setReadTimeout(50000);

      //将请求参数提交
        OutputStream output = conn.getOutputStream();
        String content=buildParam(paraMap);
        //dmq 20150119 如果编码失败,则直接抛出异常
        if("encode-error".equals(content))
        {
        	conn.disconnect();
        	throw new Exception("[dgzq]入参编码失败");
        }

        output.write(content.getBytes());
        output.flush();
        output.close();
        // 获取页面返回内容
        //注意,实际发送请求的代码段在getInputStream()中,并且本次请求已经结束
        BufferedReader reader = new BufferedReader(new InputStreamReader(conn
                .getInputStream(),CHARSET));

        StringBuffer repMsg=new StringBuffer("");;
        try
        {
	        String line="";
	        while ((line = reader.readLine()) != null) {
	        	repMsg.append(line);
	        }
        }
        finally
        {
        	reader.close();
        }

       return repMsg.toString();

	}


}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值