[J2SE] 利用http協定傳送XML內容而不另存成檔案
我想做的是利用DOM產生一份XML文件,
然後用HTTP協定傳送到自己寫的java servlet。
原本的做法是先將XML文件存成一個檔案,
然後再用post的方式將檔案傳送到java servlet。
但現在的問題是,
在實際運作的環境中,我並沒有寫入檔案的權限,
也就是說一切只能在記憶體中完成。
假設產生XML文件的部份是這樣寫:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
Element book = doc.createElement("book");
doc.appendChild(book);
doc是完整的XML結構,我原本是用這樣的方式將XML存在sample.xml中:
TransformerFactory tfactory = TransformerFactory.newInstance();
Transformer transformer = tfactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("sample.xml"));
transformer.transform(source,result);
然後再這樣傳送到url,也就是我寫的servlet上:
File f = new File("sample.xml");
URL url1 = new URL(url);
conn = (HttpURLConnection)url1.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setUseCaches(false);
conn.setDoOutput(true);
osw = new OutputStreamWriter(conn.getOutputStream());
fr = new FileReader(f);
br = new BufferedReader(fr);
while((str = br.readLine()) != null) {
osw.write(str);
osw.write(c);
}
osw.flush() ;
osw.close() ;
請問一下,應該怎麼修改我的程式,
才能夠直接把doc,利用HTTP協定傳送出去呢?謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.89.186
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):