HttpsURLConnection上傳文件流(實例講解)
更新時間:2017年07月03日 14:30:32 投稿:jingxian
下面小編就為大家?guī)硪黄狧ttpsURLConnection上傳文件流(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
項目需要對接外部接口,將圖片文件流發(fā)送到外部接口,下面代碼就是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請求,參數(shù)要放在 // http正文內(nèi),因此需要設為true, 默認情況下是false; con.setDoOutput(true); // 設置是否從httpUrlConnection讀入,默認情況下是true; con.setDoInput(true); // 設定請求的方法為"POST",默認是GET con.setRequestMethod("POST"); // Post 請求不能使用緩存 con.setUseCaches(false); // 設定傳送的內(nèi)容類型是可序列化的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請求返回狀態(tài) 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上傳文件流(實例講解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringMVC接收與響應json數(shù)據(jù)的幾種方式
這篇文章主要給大家介紹了關于SpringMVC接收與響應json數(shù)據(jù)的幾種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用springmvc具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-03-03Gradle進階使用結合Sonarqube進行代碼審查的方法
今天小編就為大家分享一篇關于Gradle進階使用結合Sonarqube進行代碼審查的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12SpringBoot使用Maven實現(xiàn)多環(huán)境配置管理
軟件開發(fā)中經(jīng)常有開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境,而且一般這些環(huán)境配置會各不相同,本文主要介紹了SpringBoot使用Maven實現(xiàn)多環(huán)境配置管理,感興趣的可以了解一下2024-01-01SpringBoot Event 事件如何實現(xiàn)異步延遲執(zhí)行
這篇文章主要介紹了Spring Boot Event 事件如何實現(xiàn)異步延遲執(zhí)行問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02java 通過發(fā)送json,post請求,返回json數(shù)據(jù)的方法
下面小編就為大家分享一篇java 通過發(fā)送json,post請求,返回json數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03