gpt4 book ai didi

java - 对flutter http请求、服务器端PrintWriter和客户端200代码的技术理解

转载 作者:行者123 更新时间:2023-12-02 00:31:57 24 4
gpt4 key购买 nike

我的 flutter 应用程序向我的 google-app-engine 后端发送 http 请求。在此请求中,用户对一个简单的非此即彼问题的投票被发送,然后存储在 mysql 数据库中。完成后,用户会看到另一个问题并再次投票。所以,问题、投票、问题、投票、问题、投票等等。

现在,用户不应该看到相同的问题两次。因此,我的 mysql 查询得到另一个问题的条件是“下载用户尚未投票的问题”。这在 99% 的情况下都非常有效。但在极少数情况下,用户会连续一次又一次地看到相同的问题 4 或 5 次,这告诉我我的应用程序可能会下载“下一个”问题(在本例中又是相同的问题) )在投票存储在我的数据库之前。

为了调试这个,我试图了解后台发生的技术内容。具体来说,我需要知道在我的应用程序在请求中发送用户投票后何时触发 200 状态代码。这是发送投票时我的服务器端部分:

else if (operation.equals("voteFav")){

        out.println("vote received");


// get userID and favID
Integer userID = Integer.valueOf(request.getParameter("userID"));
String creatorID = request.getParameter("creatorID");
Integer favID = Integer.valueOf(request.getParameter("favID"));
String voter = request.getParameter("voterName");
String winpic = request.getParameter("winpic");

try{

Connection conn = DriverManager.getConnection(mysqlUrl);
PreparedStatement ps;
ResultSet rs;
String query;

// prepare Statement
if(winpic.equals("1")) query = "INSERT INTO faved (favID, userID, voting) VALUES (?,?,1)";
else if(winpic.equals("2")) query = "INSERT INTO faved (favID, userID, voting) VALUES (?,?,2)";
else query = "INSERT INTO faved (favID, userID, voting) VALUES (?,?,-1)";
ps = conn.prepareStatement(query);

ps.setInt(1, favID);
ps.setInt(2, userID);

// send vote to database
ps.execute();
ps.close();



// close connection
out.flush();
conn.close();

} catch (Exception e) {
out.print("Fehler voting: " + e);
out.flush();
}


}

我的问题是:客户端 statusCode 200 何时触发?当我使用 PrintWriter 在第一行写回“收到投票”时,它会立即触发吗?或者只有当我关闭连接时才会触发?

希望一切都清楚了:)

最佳答案

通常,200 statusCode 是在您执行 ps 时从后端发送的。在您写入数据库的那一刻。

由于此问题仅有时发生,因此我对您的问题的看法是,您在将数据插入数据库时​​可能会遇到某种滞后。

关于java - 对flutter http请求、服务器端PrintWriter和客户端200代码的技术理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58007014/

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