package com.mm.android.deviceaddmodule.openapi; import com.mm.android.deviceaddmodule.mobilecommon.utils.LogUtil; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import javax.net.ssl.HttpsURLConnection; public class HttpClient { private static final String TAG=HttpClient.class.getSimpleName(); /** * post * * @param urlStr * @param paramStr * @param contentType * @param debugTag * @return */ public static String post(String urlStr, String paramStr, String contentType, String debugTag,int timeOut) throws IOException { LogUtil.debugLog(TAG,urlStr+"..."+paramStr); HttpsURLConnection conn = null; String resultData = ""; OutputStream outputStream = null; InputStream inputStream = null; ByteArrayOutputStream baos = null; try { URL url = new URL(urlStr); conn = (HttpsURLConnection) url.openConnection(); conn.setHostnameVerifier(SSLSocketClient.getHostnameVerifier()); conn.setConnectTimeout(timeOut); conn.setReadTimeout(timeOut); conn.setDoOutput(true); conn.setDoInput(true); conn.setRequestMethod("POST"); conn.setUseCaches(false); conn.setInstanceFollowRedirects(true); conn.setRequestProperty("Content-Type", contentType); conn.connect(); outputStream = conn.getOutputStream(); outputStream.write(paramStr.getBytes()); outputStream.flush(); outputStream.close(); int responseCode = conn.getResponseCode(); if (debugTag != null) LogUtil.debugLog(debugTag, "response code " + responseCode); if (200 == responseCode) { inputStream = conn.getInputStream(); byte[] buffer = new byte[1024]; baos = new ByteArrayOutputStream(); boolean var13 = true; int len; while ((len = inputStream.read(buffer)) != -1) { baos.write(buffer, 0, len); } byte[] b = baos.toByteArray(); resultData = new String(b, "utf-8"); baos.flush(); if (debugTag != null) LogUtil.debugLog(debugTag, "request data " + resultData); } else throw new IOException(String.format("http_get failed: status=%d", responseCode)); } catch (IOException e) { throw e; } catch (Throwable e) { throw new IOException(e); } finally { try { if (outputStream != null) { outputStream.close(); } if (baos != null) { baos.close(); } if (inputStream != null) { inputStream.close(); } } catch (IOException e) { } if (conn != null) { conn.disconnect(); } } return resultData; } }