// 用于创建一个XML文件的类
public class XmlHandler { public String writeXml(ArrayList<String> dataList) { StringWriter xmlWriter = new StringWriter(); try { // 创建XmlSerializer XmlPullParserFactory pullParserFactory = XmlPullParserFactory.newInstance(); XmlSerializer xmlSerializer = pullParserFactory.newSerializer(); xmlSerializer.setOutput(xmlWriter); // 写xml文件 // <?xml version="1.0" encoding="UTF-8" standlone="yes" ?> xmlSerializer.startDocument("UTF-8",true); // <feed number="25"> xmlSerializer.startTag("","feed"); xmlSerializer.attribute("","number",String.valueOf(dataList.size())); //<entry> xmlSerializer.startTag("","entry"); // <title> value </title> xmlSerializer.startTag("","title"); xmlSerializer.text(dataList.get(0)); xmlSerializer.endTag("","title"); // <telphone> value </telphone> xmlSerializer.startTag("","telephone"); xmlSerializer.text(dataList.get(1)); xmlSerializer.endTag("","telephone"); // <helpData> value </ helpData> xmlSerializer.startTag("","sendData"); xmlSerializer.text(dataList.get(2)); xmlSerializer.endTag("","sendData"); // <date> value </value> xmlSerializer.startTag("","date"); xmlSerializer.text(dataList.get(3)); xmlSerializer.endTag("","date"); xmlSerializer.endTag("","entry"); xmlSerializer.endTag("","feed"); xmlSerializer.endDocument(); } catch(Exception ex) { ex.printStackTrace(); } // xml创建完成,返回数据 return xmlWriter.toString(); }
}
// 创建xml文件
String createXml() { ArrayList<String> dataList = null; dataList = new ArrayList<String>(); dataList.add(0,""); TelephonyManager phoneManager = (TelephonyManager) XmlSend.this.getSystemService(Context.TELEPHONY_SERVICE);
// 此处需要添加一个获取电话号码的服务
// <uses-permission android:name="android.permission.READ_PHONE_STATE"/> dataList.add(1,phoneManager.getLine1Number()); dataList.add(2,editText.getText().toString().trim()); // 获取系统当前时间 Time time = new Time("GMT+8"); time.setToNow(); String strCurTime = time.year + ":" + time.month + ":" + time.monthDay + " " + time.hour + ":" + time.minute; dataList.add(3,strCurTime); XmlHandler handler = new XmlHandler(); return handler.writeXml(dataList); }
// 发送XML到服务器并解析返回结果
boolean sendXml(String xmlData) throws IOException,XmlPullParserException,URISyntaxException { // 向服务器发送xml文件
// 里面还有些问题,现在也没有该了 URL url = new URL("..."); // 打开服务器 HttpURLConnection conn = (HttpURLConnection)url.openConnection(); // 设置超时值 conn.setConnectTimeout(5000); conn.setRequestMethod("POST"); // 设置发送字符串的编码格式 conn.setRequestProperty("Content-Type","text/xml; charset=UTF-8"); OutputStream outStream = conn.getOutputStream(); OutputStreamWriter outStreamWriter = new OutputStreamWriter(outStream); outStreamWriter.write(xmlData); outStreamWriter.close(); outStream.close(); // 等待服务器返回发送结果,解析xml数据查看是否发送成功 URI uri = new URI("..."); HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(uri); HttpResponse response = client.execute(get); InputStream inputStream = response.getEntity().getContent(); XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser parser = factory.newPullParser(); parser.setInput(inputStream,"UTF-8"); for(int i = parser.getEventType(); i != XmlPullParser.END_DOCUMENT; i = parser.next()) { // 需要修改其xml的文件名 if(i == XmlPullParser.START_TAG && parser.getName().equals("title")) { Toast.makeText(XmlSend.this,"发送成功",Toast.LENGTH_SHORT); break; } } return true; } (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|