package com.zto.guaranteedoor.utils; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.http.client.HttpClient; /** * 和HTTP相关的操作 * * @author * */ public class HttpToken { /** * * @Title: doPost * @Description: post请求 * @param reqUrl * @param parameters * @return String */ public static String doPost(String reqUrl, Map<String, String> parameters, String token) { HttpURLConnection urlConn = null; try { urlConn = _sendPost(reqUrl, parameters, token); String responseContent = _getContent(urlConn); return responseContent.trim(); } finally { if (urlConn != null) { urlConn.disconnect(); } } } private static HttpURLConnection _sendPost(String reqUrl, Map<String, String> parameters, String token) { HttpURLConnection urlConn = null; try { StringBuffer params = new StringBuffer(); if (parameters != null) { for (Iterator<String> iter = parameters.keySet().iterator(); iter.hasNext();) { String name = iter.next(); String value = parameters.get(name); params.append(name + "="); params.append(URLEncoder.encode(value, "UTF-8")); if (iter.hasNext()) params.append("&"); } } URL url = new URL(reqUrl); urlConn = (HttpURLConnection) url.openConnection(); if(!"".equals(token) && token !=null) { urlConn.addRequestProperty("token", token); } urlConn.setRequestMethod("POST"); urlConn.setConnectTimeout(5000);// (单位:毫秒)jdk urlConn.setReadTimeout(5000);// (单位:毫秒)jdk 1.5换成这个,读操作超时 urlConn.setDoOutput(true); byte[] b = params.toString().getBytes(); urlConn.getOutputStream().write(b, 0, b.length); urlConn.getOutputStream().flush(); urlConn.getOutputStream().close(); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } return urlConn; } private static String _getContent(HttpURLConnection urlConn) { try { String responseContent = null; InputStream in = urlConn.getInputStream(); BufferedReader rd = new BufferedReader(new InputStreamReader(in, "UTF-8")); String tempLine = rd.readLine(); StringBuffer tempStr = new StringBuffer(); String crlf = System.getProperty("line.separator"); while (tempLine != null) { tempStr.append(tempLine); tempStr.append(crlf); tempLine = rd.readLine(); } responseContent = tempStr.toString(); rd.close(); in.close(); return responseContent; } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } } }
Http 带token的请求
最新推荐文章于 2024-06-17 17:12:48 发布