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格式的字符串轉(zhuǎn)化為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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringMVC接收與響應json數(shù)據(jù)的幾種方式
這篇文章主要給大家介紹了關(guān)于SpringMVC接收與響應json數(shù)據(jù)的幾種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用springmvc具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-03-03
Gradle進階使用結(jié)合Sonarqube進行代碼審查的方法
今天小編就為大家分享一篇關(guān)于Gradle進階使用結(jié)合Sonarqube進行代碼審查的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
SpringBoot使用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-01
SpringBoot Event 事件如何實現(xiàn)異步延遲執(zhí)行
這篇文章主要介紹了Spring Boot Event 事件如何實現(xiàn)異步延遲執(zhí)行問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
java 通過發(fā)送json,post請求,返回json數(shù)據(jù)的方法
下面小編就為大家分享一篇java 通過發(fā)送json,post請求,返回json數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03

