Http網路請求工具類
阿新 • • 發佈:2019-02-08
public class HttpUtil { /** * 獲取網路圖片 * * @param imageurl 圖片網路地址 * @return Bitmap 返回網路上下載的圖片 */ public static Bitmap getBitmapFromNet(String imageurl) { URL url; HttpURLConnection connection=null; Bitmap bitmap=null; try { url = new URL(imageurl); connection=(HttpURLConnection)url.openConnection(); connection.setConnectTimeout(6000); //超時設定 connection.setDoInput(true); connection.setUseCaches(false); //設定不使用快取 InputStream inputStream=connection.getInputStream(); bitmap= BitmapFactory.decodeStream(inputStream); inputStream.close(); } catch (Exception e) { e.printStackTrace(); } return bitmap; } /** * 獲取網路 字串 * * @param address 後臺提供的介面 * @return String */ public static String getStringFromNet(final String address) { HttpURLConnection connection = null; try { URL url = new URL(address); connection = (HttpURLConnection) url.openConnection(); connection.setRequestProperty("User-Agent", UrlHelper.getUA()); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.getDoInput(); connection.getDoOutput(); InputStream in = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuffer response = new StringBuffer(); String line = new String(); while ((line = reader.readLine()) != null) { response.append(line); } try { if(in != null) { in.close(); } } catch (Exception e) { e.printStackTrace(); } return response.toString(); } catch (Exception e) { return null; } finally { if(connection != null) { connection.disconnect(); } } } /** * 向網路 傳送字串 * * @param address 後臺提供的介面 * @return String */ public static String sendStrToNet(String address, String Json) { String result = ""; BufferedReader reader = null; try { URL url = new URL(address); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); conn.setRequestProperty("Connection", "Keep-Alive"); conn.setRequestProperty("Charset", "UTF-8"); // 設定檔案型別: conn.setRequestProperty("Content-Type","application/json; charset=UTF-8"); // 設定接收型別否則返回415錯誤 //conn.setRequestProperty("accept","*/*")此處為暴力方法設定接受所有型別,以此來防範返回415; conn.setRequestProperty("accept","application/json"); // 往伺服器裡面傳送資料 if (Json != null && !(Json != null)) { byte[] writebytes = Json.getBytes(); // 設定檔案長度 conn.setRequestProperty("Content-Length", String.valueOf(writebytes.length)); OutputStream outwritestream = conn.getOutputStream(); outwritestream.write(Json.getBytes()); outwritestream.flush(); outwritestream.close(); } if (conn.getResponseCode() == 200) { reader = new BufferedReader( new InputStreamReader(conn.getInputStream())); result = reader.readLine(); } } catch (Exception e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } /** * 向網路傳送圖片 * * @param urlHost 上傳地址 * @param bitmap 上傳的圖片 * @param key 圖片名 * * @return String 返回碼/上傳是否成功 */ public static String sendBitmapToNet(String urlHost, Bitmap bitmap, String key) { byte[] imageBytes = ChByteUtil.Bitmap2Bytes(bitmap); String endString = "\r\n"; String twoHyphen = "--"; String boundary = "*****"; try { URL url = new URL(urlHost); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestProperty("User-Agent", ChUrlHelper.getUA()); //con.setRequestProperty("content-type", "text/html"); //允許input、Output,不使用Cache connection.setDoInput(true); connection.setDoOutput(true); connection.setUseCaches(false); //設定傳送的method=POST connection.setRequestMethod("POST"); //setRequestProperty connection.setRequestProperty("Connection", "Keep-Alive"); connection.setRequestProperty("Charset", "utf-8"); connection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); //設定DataOutputStream DataOutputStream dsDataOutputStream = new DataOutputStream(connection.getOutputStream()); dsDataOutputStream.writeBytes(twoHyphen + boundary + endString); dsDataOutputStream.writeBytes("Content-Disposition:form-data;" + "name=\"" + key + "\";filename=\"" + "11.jpg\"" + endString); dsDataOutputStream.writeBytes(endString); //取得檔案的FileInputStream dsDataOutputStream.write(imageBytes, 0, imageBytes.length); dsDataOutputStream.writeBytes(endString); dsDataOutputStream.writeBytes(twoHyphen + boundary + twoHyphen + endString); dsDataOutputStream.close(); int cah = connection.getResponseCode(); if (cah == 200) { InputStream isInputStream = connection.getInputStream(); int ch; StringBuffer buffer = new StringBuffer(); while ((ch = isInputStream.read()) != -1) { buffer.append((char) ch); } return buffer.toString(); } else { return "false"; } } catch (Exception e) { e.printStackTrace(); } return "false"; } }