我想使用servlet从android向java tomcat服务器发送请求,然后服务器将向客户端发送大量数据,数据包含很多行,每行有三个参数:
competitionID, marks, numberOfQuestions
从 android 向服务器发送请求的代码
HttpClient client = new DefaultHttpClient();
URI website;
website = new URI("http://" + HostIP
+ ":8080/LocalizedBasedComptitionServer/JoinCompetition");
HttpPost request = new HttpPost();
request.setHeader("ID", ID + "");
request.setURI(website);
HttpResponse response = client.execute(request);
servlet 代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletOutputStream out = response.getOutputStream();
CellDatabase cDB = new CellDatabase();
List<String[]>list = new LinkedList<String[3]>();
out.flush();
}
如何发送列表list
以及如何接收它?
最佳答案
有几种方法可以实现这一目标:
1.将响应格式化为JSON数组,例如:
[
{ competitionId : "6", marks : "2", numberOfQuestions : "3"},
{ competitionId : "2", marks : "1", numberOfQuestions : "5"},
]
然后你的客户端将把这个 JSON 字符串解析成数组
2.创建您自己的分隔字符串结果,例如: 6,2,3|2,1,5
由于您知道响应将是一个包含 3 个元素的数组,因此您可以首先用特殊字符“|”分隔项目,然后对于每个数组项目,用分隔符“,”再次拆分,您将获得您的竞赛 ID,分数和问题数。
这种方法快速简单,但难以维护:如果您添加/删除新元素,或者更改服务器端的分隔符,您的客户端将会崩溃。因此,使用 JSON 方法可能是可行的方法。
关于java服务器将字符串数组列表发送到android客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11335618/