雲從科技人臉識別傳送http請求工具類
阿新 • • 發佈:2018-11-22
下面程式碼為本人專案實際應用程式碼工具類:
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(); } }