gpt4 book ai didi

java - 将 HTTPServletRequest 流写入 Google App Engine 的数据存储区

转载 作者:行者123 更新时间:2023-12-02 07:00:43 25 4
gpt4 key购买 nike

我对 App Engine 和 Java 开发还很陌生,尝试通过 Http Post 接收 InputStream 并将其存储到数据存储区中。

为了测试这一点,我使用另一台计算机的正常运行时间并在一个流中发送 10 个正常运行时间值。

每当我对此进行测试时,机器都会响应计数高达 10 和正常运行时间值的情况。但数据存储查看器只存储了一项。我究竟做错了什么?我认为使用 Memcache 的数据还不够多,尽管这是更好的方法,我稍后会这样做。

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Entity uptime = new Entity("Uptime");

BufferedReader buff = req.getReader();
String line = buff.readLine();

PrintWriter out = resp.getWriter();

int n = 0;
Date timestamp = new Date();

while (line != null){
uptime.setProperty("timestamp", timestamp);
uptime.setProperty("value", line);
datastore.put(uptime);
//Ouput for Debug purpose
out.println("COUNT: " + n + " LINE: " + line);
n++;

line = buff.readLine();
}
}

最佳答案

循环时,您不会创建新的 Entity 对象,而只是更改现有对象的属性。

while (line != null){
Entity uptime = new Entity("Uptime"); // remove the declaration/initialization from before, create a new every loop
uptime.setProperty("timestamp", timestamp);
uptime.setProperty("value", line);
datastore.put(uptime);
//Ouput for Debug purpose
out.println("COUNT: " + n + " LINE: " + line);
n++;

line = buff.readLine();
}

我不确定您的数据存储区如何识别对象(它只是一个映射吗?对象 ID 是什么?它的 equals() 方法是做什么的?),但它应该以这种方式区分它们.

关于java - 将 HTTPServletRequest 流写入 Google App Engine 的数据存储区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16692933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com