我们有一个Android应用程序,要求用户输入Captcha的答案.Captcha是在我们的服务器上生成的.回复时,会将其发送到服务器进行验证.
问题是,因为我必须在请求Captcha之后关闭HttpURLConnection,然后发现回复正在服务器上的另一个会话上运行.因此,Captcha检查失败,因为它取决于会话.
有没有办法保持连接活着或者我应该遵循不同的路径?我知道在相应的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();
Run Code Online (Sandbox Code Playgroud)