您好,登錄后才能下訂單哦!
項目需要對接外部接口,將圖片文件流發送到外部接口,下面代碼就是HttpsURLConnection如何上傳文件流:
/** * HttpsURLConnection上傳文件流 * * @param args * @throws Exception */ public static void main(String[] args) throws Exception { //本地圖片 java.io.File file = new java.io.File("/Users/jikukalun/Pictures/id1.jpg"); FileInputStream fileInputStream = new FileInputStream(file); //對接外部接口 String urlString = "************"; URL url = new URL(urlString); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); // 設置是否向httpUrlConnection輸出,因為這個是post請求,參數要放在 // http正文內,因此需要設為true, 默認情況下是false; con.setDoOutput(true); // 設置是否從httpUrlConnection讀入,默認情況下是true; con.setDoInput(true); // 設定請求的方法為"POST",默認是GET con.setRequestMethod("POST"); // Post 請求不能使用緩存 con.setUseCaches(false); // 設定傳送的內容類型是可序列化的java對象 // (如果不設此項,在傳送序列化對象時,當WEB服務默認的不是這種類型時可能拋java.io.EOFException) // con.setRequestProperty("Content-type", "application/x-java-serialized-object"); OutputStream out = con.getOutputStream(); //讀取本地圖片文件流 FileInputStream inputStream = new FileInputStream(file); byte[] data = new byte[2048]; int len = 0; int sum = 0; while ((len = inputStream.read(data)) != -1) { //將讀取到的本地文件流讀取到HttpsURLConnection,進行上傳 out.write(data, 0, len); sum = len + sum; } System.out.println("上傳圖片大小為:" + sum); out.flush(); inputStream.close(); out.close(); int code = con.getResponseCode(); //獲取post請求返回狀態 System.out.println("code=" + code + " url=" + url); if (code == 200) { InputStream inputStream2 = con.getInputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); while ((len = inputStream2.read(data)) != -1) { bos.write(data, 0, len); } inputStream2.close(); String content = bos.toString(); bos.close(); System.out.println("result =" + content); //將返回的json格式的字符串轉化為json對象 JSONObject json = JSONObject.parseObject(content); try { System.out.println("name=" + json.getString("name") + ", people=" + json.getString("people") + ", sex=" + json.getString("sex") + ", id_number=" + json.getString("id_number") + ", type=" + json.getString("type") + ", address=" + json.getString("address") + ", birthday=" + json.getString("birthday")); } catch (JSONException e) { e.printStackTrace(); } } //斷開HttpsURLConnection連接 con.disconnect(); }
引用jar包:
import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import javax.net.ssl.HttpsURLConnection; import java.io.*; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL;
以上這篇HttpsURLConnection上傳文件流(實例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。