ユーザーがキャプチャへの回答を入力する必要がある Android アプリケーションがあります。Captcha はサーバー上で生成されます。が応答すると、検証のためにサーバーに送信されます。
問題は、Captcha の要求の後に HttpURLConnection を閉じる必要があるため、応答がサーバー上の別のセッションで実行されていることがわかります。このため、Captcha チェックはセッションに依存するため失敗します。
接続を維持する方法はありますか、それとも別の道をたどるべきですか? 同等のiPhoneアプリケーションでは、それらは「接続」されたままであるため、同じセッションIDを持っていることがわかっています。
編集:
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();