Cookie Management mit Java URLConnection

Ich bin ziemlich neu in der Android-Programmierung und habe kürzlich eine erfolgreiche HTTP-Post-Anfrage erhalten, nur um zu erfahren, dass meine Cookies nicht zwischen nachfolgenden Post / Get-Anfragen gespeichert werden. Ich habe mich im Internet umgesehen und ein paar Beispiele für den Apache-Client von Android und die HttpURLConnection von Java gefunden. Da es mir nicht gelungen ist, eine der beiden Methoden in meine aktuelle Klasse zu implementieren, habe ich mich gefragt, ob jemand mit mehr Erfahrung meinen Code überprüfen und Vorschläge unterbreiten kann.

Rekapitulieren

Meine anfängliche POST-Anforderung ist erfolgreich und authentifiziert.Meine zweite POST-Anforderung behält die Cookies der ersten POST-Anforderung nicht bei. Gibt es eine bestimmte Instanz oder einen bestimmten Grund, warum sich jemand für die Apache-Methode oder die Java-Implementierung entscheiden könnte? Sind beide gleichberechtigt oder bietet einer mehr Möglichkeiten und Flexibilität als der andere?

Jede Hilfe wird geschätzt, danke.

webCreate.java

import android.util.Log;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.HttpCookie;
import java.net.HttpURLConnection;
import java.net.URL;

import javax.net.ssl.HttpsURLConnection;

public class webCreate {

    private final String USER_AGENT = "Mozilla/5.0";


    // HTTP GET request
    public void sendGet(String url) throws Exception {

        CookieManager cookieManager = new CookieManager();
        CookieHandler.setDefault(cookieManager);
        HttpCookie cookie = new HttpCookie("lang", "en");


        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // optional default is GET
        con.setRequestMethod("GET");

        //add request header
        con.setRequestProperty("User-Agent", USER_AGENT);

        int responseCode = con.getResponseCode();
        Log.d("sendGet", "\nSending 'GET' request to URL : " + url);


        BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();


        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }

        in.close();

        //print result
        System.out.println(response.toString());
        Log.d("Response Code", response.toString());
    }

    // HTTP POST request
    String  sendPost(String url, String urlParams) throws Exception {

        CookieManager cookieManager = new CookieManager();
        CookieHandler.setDefault(cookieManager);
        HttpCookie cookie = new HttpCookie("lang", "en");

        URL obj = new URL(url);
        HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

        //add request header
        con.setRequestMethod("POST");
        con.setRequestProperty("User-Agent", USER_AGENT);
        con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");

        // Send post request
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(urlParams);
        wr.flush();
        wr.close();

        int responseCode = con.getResponseCode();
        System.out.println("\nSending 'POST' request to URL : " + url);
        System.out.println("Post parameters : " + urlParams);
        System.out.println("Response Code : " + responseCode);

        BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        System.out.println("Response Code : " + response);
        return  response.toString();
    }

}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage