使用android发送XML数据

服务器端:

1.用一个servlet来接收android客户端的请求。

import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import cn.kafei.utils.StreamTool;@WebServlet("/XmlServlet")public class XmlServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {//通过request的getInputStream方法可以获得android客户端发送的XML数据流byte[] data = StreamTool.read(request.getInputStream());String xml = new String(data, "UTF-8");System.out.println(xml);}}
2.读取流中的数据:

/** * 读取流中的数据 */public static byte[] read(InputStream inputStream) throws IOException {ByteArrayOutputStream outputStream=new ByteArrayOutputStream();byte[] b=new byte[1024];int len=0;while((len=inputStream.read(b))!=-1){outputStream.write(b,0,len);}inputStream.close();return outputStream.toByteArray();}
android客户端:

1.首先准备一个提供测试的XML文件(city.xml),放在src目录下:

<?xml version="1.0" encoding="UTF-8"?><citys>  <china id="0">    <city>兰州</city>    <province>甘肃</province>  </china>  <china id="1">    <city>庆阳</city>    <province>甘肃</province>  </china>  </citys>
2.编写发送的业务逻辑:

public void testSendXML() throws Exception {// 向服务器发送实体数据InputStream inStream = this.getClass().getClassLoader().getResourceAsStream("city.xml");//加载本地XML文件byte[] data = StreamTool.read(inStream);//获得文件的字节数组String path = "http://192.168.1.100:8080/web/XmlServlet";//发送路径HttpURLConnection conn = (HttpURLConnection) new URL(path).openConnection();conn.setConnectTimeout(5000);conn.setRequestMethod("POST");//以PSOT方式进行提交conn.setDoOutput(true);//允许输出数据conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");//设置发送的文件类型conn.setRequestProperty("Content-Length", String.valueOf(data.length));//设置发送文件的长度conn.getOutputStream().write(data);//些人输出流中//判断是否发送成功,只有调用了getResponseCode方法才真正的实现发送的动作if (conn.getResponseCode() == 200) {System.out.println("发送成功");} else {System.out.println("发送失败");}}
至此android客户端向服务器发送XML数据就已完成。欢迎大家进行交流

更多相关文章

  1. 初步了解Android
  2. 写信息的界面
  3. Android客户端GPS定位
  4. Android(安卓)发送短信 源代码
  5. 调用android系统自带功能
  6. Android(安卓)判断SD卡是否存在及容量查询
  7. android销毁Activity和被系统销毁时的数据保存
  8. Android--通过关键字查找短消息数据库并将匹配的信息显示
  9. json解析查找指定数据字段

随机推荐

  1. Android cmd 命令常用参数详解
  2. Android音频开发之AudioTrack
  3. Android开发常用颜色8位16进制(包括RGB)
  4. Android点击水波纹效果
  5. 安卓开发定时刷新界面
  6. Android入门教程(二)之---------->androi
  7. Android列表控件Spinner简单用法示例
  8. Android--Socket通信
  9. the android virtual Device AVD2.3.3 is
  10. 应聘Android开发工程师-Java笔试部分的答