我们有一个 Android 应用程序,它要求用户输入验证码的答案。验证码是在我们的服务器上生成的。当回复时,它被发送到服务器进行验证。
问题是,由于我必须在请求验证码后关闭 HttpURLConnection,然后我发现回复正在服务器上的不同会话上运行。因此,验证码检查失败,因为它依赖于会话。
有没有办法让连接保持活跃,或者我应该走一条不同的路?我知道在等效的 iPhone 应用程序中,它们保持“连接”状态,因此具有相同的 sessionid。
编辑:
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
URL urlObj = new URL(urlPath);
conn = (HttpURLConnection) urlObj.openConnection();
if (urlPath.toLowerCase().startsWith("https:")) {
initializeHttpsConnection((HttpsURLConnection) conn);
}
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Language", "en-US");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", Integer.toString(bodyData.length));
if (_sessionIdCookie != null) {
conn.setRequestProperty("Cookie", _sessionIdCookie);
}
// Connect
conn.setDoInput(true);
conn.setDoOutput(true);
conn.connect();