Json是一種輕量級(jí)的數(shù)據(jù)交換格式。Java作為一種面向?qū)ο蟮木幊陶Z(yǔ)言,在處理Json數(shù)據(jù)時(shí)也有很好的支持。在這篇文章中,我們將介紹如何使用Java發(fā)送Json格式的文件。
//1. 導(dǎo)入相關(guān)的包 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import org.apache.commons.io.IOUtils; //2. 構(gòu)建發(fā)送Json文件的方法 public static String sendJsonFile(String urlStr, String jsonFilePath) throws IOException { //3. 創(chuàng)建URL對(duì)象和HttpURLConnection連接對(duì)象 URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //4. 設(shè)置請(qǐng)求方法和請(qǐng)求頭信息 conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); //5.設(shè)置輸入流,將Json格式的文件轉(zhuǎn)成字節(jié)數(shù)組輸入流 File jsonFile = new File(jsonFilePath); InputStream input = new FileInputStream(jsonFile); //6.設(shè)置輸出流,將結(jié)果轉(zhuǎn)成字符串輸出 conn.setDoOutput(true); IOUtils.copy(input, conn.getOutputStream()); //7.獲取服務(wù)器返回的結(jié)果,并轉(zhuǎn)成字符串 InputStream is = conn.getInputStream(); String result = IOUtils.toString(is, "UTF-8"); //8.關(guān)閉輸入和輸出流 IOUtils.closeQuietly(input); IOUtils.closeQuietly(is); //9.返回結(jié)果字符串 return result; } //10. 測(cè)試方法 public static void main(String[] args) throws IOException { String urlStr = "http://localhost:8080/upload"; String jsonFilePath = "C:/test.json"; String result = sendJsonFile(urlStr, jsonFilePath); System.out.println("發(fā)送結(jié)果:" + result); }
在上面的代碼中,我們使用Apache Commons IO的IOUtils.copy方法,將Json文件以字節(jié)數(shù)組的形式輸出到HttpURLConnection的輸出流中。最后將服務(wù)器返回的結(jié)果也以字符串的形式輸出。
這就是Java發(fā)送Json文件的簡(jiǎn)單實(shí)現(xiàn)方式。希望讀者可以在實(shí)際項(xiàng)目中借鑒到這個(gè)方法。