package com.emm.util; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.Map; import net.sf.json.JSONObject; public class HttpUtils { private String firstCookie; public HttpUtils() { } public String sendPostMessage(Map params, String encode,String PATH) { StringBuffer stringBuffer = new StringBuffer(); if (params != null && !params.isEmpty()) { for (Map.Entry entry : params.entrySet()) { try { stringBuffer .append(entry.getKey()) .append("=") .append(URLEncoder.encode(entry.getValue(), encode)) .append("&"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } stringBuffer.deleteCharAt(stringBuffer.length() - 1); System.out.println("-->>" + stringBuffer.toString()); try { URL url = new URL(PATH); HttpURLConnection httpURLConnection = (HttpURLConnection) url .openConnection(); httpURLConnection.setConnectTimeout(3000); httpURLConnection.setDoInput(true);// 从服务器获取数据 httpURLConnection.setDoOutput(true);// 向服务器写入数据 httpURLConnection.setRequestMethod("POST"); byte[] mydata = stringBuffer.toString().getBytes(); httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); httpURLConnection.setRequestProperty("Content-Lenth", String.valueOf(mydata.length)); OutputStream outputStream = (OutputStream) httpURLConnection .getOutputStream(); outputStream.write(mydata); int responseCode = httpURLConnection.getResponseCode(); if (responseCode == 200) { String responseCookie = httpURLConnection.getHeaderField("Set-Cookie");// 取到所用的Cookie if (responseCookie != null) { firstCookie = responseCookie.substring(0, responseCookie.indexOf(";")); } return firstCookie.toString(); } } catch (IOException e) { e.printStackTrace(); } } return ""; } public static String sendPostMessage2(Map params, String encode,String PATH,String firstCookie) throws UnsupportedEncodingException { if (params != null && !params.isEmpty()) { JSONObject json = JSONObject.fromObject(params); System.out.println("-->>" + json.toString()); try { URL url = new URL(PATH); HttpURLConnection httpURLConnection = (HttpURLConnection) url .openConnection(); httpURLConnection.setConnectTimeout(3000); httpURLConnection.setDoInput(true);// 从服务器获取数据 httpURLConnection.setDoOutput(true);// 向服务器写入数据 byte[] mydata = json.toString().getBytes(); httpURLConnection.setRequestProperty("Content-Type", "application/json"); httpURLConnection.setRequestProperty("Cookie", firstCookie); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setUseCaches(true); OutputStream outputStream = (OutputStream) httpURLConnection .getOutputStream(); outputStream.write(mydata); // 获得服务器响应的结果和状态码 int responseCode = httpURLConnection.getResponseCode(); if (responseCode == 200) { // 获得输入流,从服务器端获得数据 InputStream inputStream = (InputStream) httpURLConnection .getInputStream(); return (changeInputStream(inputStream, encode)); } } catch (IOException e) { e.printStackTrace(); } } return ""; } public static String changeInputStream(InputStream inputStream, String encode) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); byte[] data = new byte[1024]; int len = 0; String result = ""; if (inputStream != null) { try { while ((len = inputStream.read(data)) != -1) { byteArrayOutputStream.write(data, 0, len); } result = new String(byteArrayOutputStream.toByteArray(), encode); } catch (IOException e) { e.printStackTrace(); } } return result; } public static void ToDownLisences(int id,String result,String commonName) throws IOException{ HttpURLConnection conn = null; InputStream inputStream = null; FileOutputStream fileOut = null; File file = null; String fileName=commonName+".p12"; try { String path = Config.props.getProperty("downLoadCert")+id; URL url = new URL(path); conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); conn.setRequestMethod("GET"); conn.setRequestProperty("Cookie", result); String filePath = Config.props.getProperty("downLoadPath"); File fp = new File(filePath); // 创建目录 if (!fp.exists()) { fp.mkdirs();// 目录不存在的情况下,创建目录。 } fileName = fileName.substring(fileName.lastIndexOf('/')+1); inputStream = conn.getInputStream(); if(inputStream!=null){ file = new File(filePath+fileName); } //写入到文件 fileOut = new FileOutputStream(file); if(fileOut!=null){ int c = inputStream.read(); while(c!=-1){ fileOut.write(c); c = inputStream.read(); } } } catch (Exception e) { e.printStackTrace(); }finally{ if(conn!=null){ conn.disconnect(); } /* * 必须关闭文件流 * 否则JDK运行时,文件被占用其他进程无法访问 */ try { inputStream.close(); fileOut.close(); } catch (IOException e) { e.printStackTrace(); } } } }
java http json 调用_java调用http传json数据或字符串
最新推荐文章于 2024-07-26 02:57:11 发布