[J2SE] 利用http協定傳送XML內容而不另存成檔案

看板java作者 (neverfly)時間17年前 (2008/09/04 09:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
我想做的是利用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
文章代碼(AID): #18lpeF-D (java)
討論串 (同標題文章)
文章代碼(AID): #18lpeF-D (java)