文档章节

android客户端发送XML数据至服务器

ht896632
 ht896632
发布于 2016/03/02 14:07
字数 422
阅读 9
收藏 0

使用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数据就已完成。欢迎大家进行交流

© 著作权归作者所有

共有 人打赏支持
ht896632
粉丝 36
博文 53
码字总数 31361
作品 0
闵行
高级程序员
私信 提问
基于Android移动平台僵尸网络模拟工具设计与实现

移动端:基于Android系统开发的应用,表层应用是基于baiduMap 路线规划app 服务端:基于python web 开发框架 django 实现。 通信信道:基于第三方SDK Jpush推送消息+自己一套加密系统 推送原...

颓废的幻想者
2015/06/29
0
0
Android消息推送完美方案

推送功能在手机应用开发中越来越重要,已经成为手机开发的必须。在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折。本文就是用来和大家共同探讨一种Android消息...

Yujan
2014/04/10
0
0
XMPP文件传输(XEP-0096协议说明)

XMPP XEP-0096协议是XMPP中的文件传输协议。 关于文件传输,在xmpp协议中有不少协议可以实现,而XEP-0096协议是其中非常简单的一个协议。由于邮件被删,我的代码demo丢失,因此只能在这里给大...

今幕明
2014/02/22
0
0
Android客户端与服务器交互方式-小结

最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json。要在Android手机客户端与pc服务器交互,需要满足下面几种条件...

x-knight_勋爵
2016/04/18
0
0
Android推送通知指南

在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户 端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是Android平台上实现起来却相对...

LiSteven
2013/03/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java.util.Concurrent.Semaphore 源码

类图 源码: package java.util.concurrent;import java.util.Collection;import java.util.concurrent.locks.AbstractQueuedSynchronizer;public class Semaphore implements ja......

狼王黄师傅
17分钟前
2
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
2
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
1
0
使用 React 和 Vue 创建相同的应用,他们有什么差异?

在工作中应用 Vue 之后,我对它有了相当深刻的理解。 不过,俗话说「外国的月亮比较圆」,我好奇「外国的」 React 是怎么样的。 我阅读了 React 文档并观看了一些教程视频,虽然它们很棒,但...

阿K1225
昨天
4
0
2天闭门培训|以太坊智能合约从入门到实战(北京)

2天培训 16个课时 探寻技术原理,精通以太坊智能合约开发 以太坊智能合约是现在应用的最广泛的区块链应用开发方式,HiBlock区块链社区针对以太坊智能合约的学习特别推出2天闭门研修班,通过2...

HiBlock
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部