作者neverfly (neverfly)
站内java
标题[J2SE] 利用http协定传送XML内容而不另存成档案
时间Thu Sep 4 09:29:50 2008
我想做的是利用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