2008年6月2日 星期一

使用URL post XML給server端的servlet

URL urlobj = new URL(servletUrl);
HttpURLConnection urlconn = (HttpURLConnection) urlobj.openConnection();
urlconn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8"); //<--注意編碼設定
urlconn.setDoOutput(true);
urlconn.setDoInput(true);
urlconn.setRequestMethod("POST");
PrintWriter urlpw = new PrintWriter(new OutputStreamWriter(new DataOutputStream(urlconn.getOutputStream()),"UTF-8")); //<--注意編碼設定
JAXBAgent jaxbAgent = new JAXBAgent();
urlpw.print(jaxbAgent.marshal(reqObj));
urlpw.flush();
urlpw.close();
BufferedReader urlbr = new BufferedReader(new InputStreamReader(new DataInputStream(urlconn.getInputStream()),"UTF-8")); //<--注意編碼設定
StringBuffer strbuf = new StringBuffer();
String line = null;
while (null != (line = urlbr.readLine())) {
strbuf.append(line);
}
Object resObj = jaxbAgent.unmarshal(pkgName, strbuf.toString());


//server端的Servlet也要使用
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
//來設定編碼,才不會有中文字亂碼的問題。

沒有留言: