0

我想使用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);

小服务程序代码

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以及如何接收?

4

1 回答 1

2

有几种方法可以实现这一点:

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 方法可能是要走的路。

于 2012-07-04T22:25:33.133 回答