Vorhandene Cookies mit OKhttp mitsenden

wer112

Top Contributor
Bei Volly war es nie das Problem, das es ein Session Fehler gab. Wenn man sich Einloggt wird eine Session in zwei bestimmten Klassen angelegt. Wenn man einmal eingeloogt war wurde die Cookies übersprungen, aber die App hat trotzdem die Cookies verwendet.

Leider verwendet okhttp diese Cookies nicht.

Wie kann ich den Spezielen Cookie Manager mit senden ohne eine komplett neuen Cookie herzustellen?

Die App (bei Volly) hat dies automatisch getan.
 

wer112

Top Contributor
Leider geht es nicht, wollte probieren:
Java:
OkHttpClient client = new OkHttpClient();
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);       
client.setCookieHandler(cookieManager);

Aber setCookieHandler gibts nicht.

Wollte das probieren:

Java:
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieJar cookieJar = new JavaNetCookieJar(cookieManager);
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.cookieJar(cookieJar);
OkHttpClient client = builder.build();

Aber das JavaNetCookieJar gibt es nicht und finde dazu nicht die entsprechende Klasse.
 

Jw456

Top Contributor
Zeige uns doch mal wie du das mit Volley machst.
Ich glaube du benutzt gar kein echtes Cookie . Du machst doch nur eine Session in PhP.
Also bearbeite den Hader.
 
Zuletzt bearbeitet:

wer112

Top Contributor
Zeige uns doch mal wie du das mit Volley machst.
Java:
RequestQueue queue = Volley.newRequestQueue(getActivity());

                    String url = "";

                    VolleyMultipartRequest volleyMultipartRequest = new VolleyMultipartRequest(Request.Method.POST, url, new Response.Listener<NetworkResponse>() {
                        @Override
                        public void onResponse(NetworkResponse response) {
                            try {
                                JSONObject obj = new JSONObject(new String(response.data));
                                String Response = obj.toString();
                                Log.e(TAG, "MultipartResponse: " + Response);

                                if(obj.getString("response").equals("Datei ist leer.")){
                                    aLoadingDialog.dismiss();
                                    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                                    View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout)getActivity().findViewById(R.id.layoutDialogContainer));
                                    builder.setView(view);
                                    ((TextView) view.findViewById(R.id.textTitle)).setText("Datei Fehler");
                                    ((TextView) view.findViewById(R.id.textView_error)).setText("Leider gab es Probleme mit der Datei. Probieren Sie es erneut." );
                                    ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                    ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                                    final AlertDialog alertDialog = builder.create();
                                    alertDialog.setCancelable(false);

                                    view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View v) {
                                            alertDialog.dismiss();

                                        }
                                    });

                                    if (alertDialog.getWindow() != null) {
                                        alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                    }


                                    alertDialog.show();
                                } else if (obj.getString("response").equals("Abgemeldet.")) {
                                    aLoadingDialog.dismiss();
                                    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                                    View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout)getActivity().findViewById(R.id.layoutDialogContainer));
                                    builder.setView(view);
                                    ((TextView) view.findViewById(R.id.textTitle)).setText("Abgemeldet");
                                    ((TextView) view.findViewById(R.id.textView_error)).setText("ERROR 3" );
                                    ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                    ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                                    final AlertDialog alertDialog = builder.create();
                                    alertDialog.setCancelable(false);

                                    view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View v) {
                                            fragment_steuerung.Abmelden();
                                            alertDialog.dismiss();

                                        }
                                    });

                                    if (alertDialog.getWindow() != null) {
                                        alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                    }


                                    alertDialog.show();
                                
                                } else if (obj.getString("response").equals("falsches Format")) {
                                    aLoadingDialog.dismiss();
                                    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                                    View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout)getActivity().findViewById(R.id.layoutDialogContainer));
                                    builder.setView(view);
                                    ((TextView) view.findViewById(R.id.textTitle)).setText("Falsches Format");
                                    ((TextView) view.findViewById(R.id.textView_error)).setText("Sie haben ein Falsches Format hochgeladen, bitte prüfen Sie, ob es ein Zip Format ist." );
                                    ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                    ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                                    final AlertDialog alertDialog = builder.create();
                                    alertDialog.setCancelable(false);

                                    view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View v) {
                                            alertDialog.dismiss();

                                        }
                                    });

                                    if (alertDialog.getWindow() != null) {
                                        alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                    }


                                    alertDialog.show();
                                } else if (obj.getString("response").equals("Session fehler")) {
                                    aLoadingDialog.dismiss();
                                    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                                    View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout)getActivity().findViewById(R.id.layoutDialogContainer));
                                    builder.setView(view);
                                    ((TextView) view.findViewById(R.id.textTitle)).setText("Session Fehler");
                                    ((TextView) view.findViewById(R.id.textView_error)).setText("ERROR 2" );
                                    ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                    ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                                    final AlertDialog alertDialog = builder.create();
                                    alertDialog.setCancelable(false);

                                    view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View v) {
                                            alertDialog.dismiss();

                                        }
                                    });

                                    if (alertDialog.getWindow() != null) {
                                        alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                    }


                                    alertDialog.show();
                                } else if (obj.getString("response").equals("Leerer POST")) {
                                    aLoadingDialog.dismiss();
                                    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                                    View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout)getActivity().findViewById(R.id.layoutDialogContainer));
                                    builder.setView(view);
                                    ((TextView) view.findViewById(R.id.textTitle)).setText("POST Fehler");
                                    ((TextView) view.findViewById(R.id.textView_error)).setText("ERROR 5" );
                                    ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                    ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                                    final AlertDialog alertDialog = builder.create();
                                    alertDialog.setCancelable(false);

                                    view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View v) {
                                            alertDialog.dismiss();

                                        }
                                    });

                                    if (alertDialog.getWindow() != null) {
                                        alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                    }


                                    alertDialog.show();
                                } else if (obj.getString("response").equals("erfolgreich hochgeladen")) {
                                    aLoadingDialog.dismiss();
                                    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                                    View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_erfolgreich_dialog, (ConstraintLayout)getActivity().findViewById(R.id.layoutDialogContainer));
                                    builder.setView(view);
                                    ((TextView) view.findViewById(R.id.textTitle)).setText("Erfolgreich");
                                    ((TextView) view.findViewById(R.id.textView_erfolgreich)).setText("Sie haben es erfolgreich hochgeladen." );
                                    ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                    ((ImageView) view.findViewById(R.id.image_erfolgreich)).setImageResource(R.drawable.ic_erfolgreich);

                                    final AlertDialog alertDialog = builder.create();
                                    alertDialog.setCancelable(false);

                                    view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View v) {
                                            alertDialog.dismiss();
                                            AppsImport();
                                        }
                                    });

                                    if (alertDialog.getWindow() != null) {
                                        alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                    }


                                    alertDialog.show();
                                }

                            } catch (JSONException e) {
                                throw new RuntimeException(e);
                            }

                        }
                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                        Log.e(TAG, "MultipartError: " + error);
                            aLoadingDialog.dismiss();
                            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                            View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout)getActivity().findViewById(R.id.layoutDialogContainer));
                            builder.setView(view);
                            ((TextView) view.findViewById(R.id.textTitle)).setText("VollyError");
                            ((TextView) view.findViewById(R.id.textView_error)).setText("ERROR 4: " + error );
                            ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                            ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                            final AlertDialog alertDialog = builder.create();
                            alertDialog.setCancelable(false);

                            view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    alertDialog.dismiss();

                                }
                            });

                            if (alertDialog.getWindow() != null) {
                                alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                            }


                            alertDialog.show();
                        }
                    }){
                        @Nullable
                        @Override
                        protected Map<String, String> getParams() throws AuthFailureError {
                            HashMap<String, String>param = new HashMap<>();
                            param.put("appname", appname);
                            param.put("packagename", packagename);
                            param.put("version", version);
                            param.put("passwort", passwort);
                            return param;
                        }

                        @Override
                        protected Map<String, DataPart> getByteData() throws AuthFailureError {
                            Map<String, DataPart> params = new HashMap<>();
                            byte[] zipArray = getArrayFromZip(path);
                            params.put("zip", new DataPart(dateiname, zipArray, "application/zip"));
                            return params;
                        }
                    };

                queue.add(volleyMultipartRequest);
Ich glaube du benutzt gar kein echtes Cookie . Du machst doch nur eine Session in PhP.

Ja Ich benutze SESSIONS in PHP, aber bei Volly läuft es ohne Probleme. Bei OKhttp3 kommt die Session nicht an. Mein Spezieler Cokie Manager der im Login alles anlegt, läuft nur mit Volly oder Volly machtdas gegensatz zu okhttp3 automatisch:

Java:
SiCookieStore2 siCookieStore = new SiCookieStore2(this);
        CookieManager cookieManager = new CookieManager((CookieStore) siCookieStore, CookiePolicy.ACCEPT_ALL);
        CookieHandler.setDefault(cookieManager);
Also bearbeite den Hader.
Wie soll ich die Session aus meinem Spezielen Cookie Manager ihn zum Header hinzufügen?
Die Codes, die ich in #3 gezeigt habe funktioniert nicht(der erste ist für okhttp2 und nicht für die 3)
 

Jw456

Top Contributor
Lassen wir mal das Multipart beiseite.
Hast du es denn schon geschafft einen Request zum Server zu schicken und hast du auch eine Session ID bekommen mit OkHttp ?

Diese Daten von Volley werden doch bestimmt in http Request Header mit geschickt.
Java:
protected Map<String, String> getParams() throws AuthFailureError {
                            HashMap<String, String>param = new HashMap<>();
                            param.put("appname", appname);
                            param.put("packagename", packagename);
                            param.put("version", version);
                            param.put("passwort", passwort);
                            return param;

Also was liegt nahe das gleiche mit OkHttp auch zu tun.
 

wer112

Top Contributor
Lassen wir mal das Multipart beiseite.
Hast du es denn schon geschafft einen Request zum Server zu schicken und hast du auch eine Session ID bekommen mit OkHttp ?
Ich bekomme keine Session ID. BEkomme immer den Fehler das Ich Session Fehler habe(JSON). Ich weiß nicht wie dau das meinst?
Diese Daten von Volley werden doch bestimmt in http Request Header mit geschickt.
Java:
protected Map<String, String> getParams() throws AuthFailureError {
                            HashMap<String, String>param = new HashMap<>();
                            param.put("appname", appname);
                            param.put("packagename", packagename);
                            param.put("version", version);
                            param.put("passwort", passwort);
                            return param;

Also was liegt nahe das gleiche mit OkHttp auch zu tun.
Mein Code:

PHP:
<?php
session_start();

include_once("includes/utf-8.php");
require "connecting/db.php";

$array = array();

$angemeldet = trim($_SESSION['angemeldet']);
$kundennummer = trim($_SESSION['kn']);

if(empty($angemeldet) or empty($kundennummer)){
    
    
    $array['response'] = "Session fehler";
    echo json_encode($array);


}else{

    if($angemeldet == 1){

        $appname = trim($_POST['appname']);
        $package = trim($_POST['packagename']);
        $version = trim($_POST['version']);
        $passwort = trim($_POST['passwort']);

        if(empty($appname) && empty($package) && empty($version) && empty($passwort)){
            $array['response'] = "Leerer POST";
            echo json_encode($array);

        }else{

            $zip = $_FILES['zip']['tmp_name'];

            $dir = $_SERVER['DOCUMENT_ROOT'] . "/projekte/klugstore/doc/gespendeteApps/";

            if(empty($zip)){

                $array['response'] = "Datei ist leer.";
                echo json_encode($array);
    
            }else{
                
                
                    if(mime_content_type($zip) == "application/zip"){
                        $check = move_uploaded_file($zip,$dir.$_FILES["zip"]["name"]);
                        
                        if($check){

                            //UTC einholen
                            $date_utc = new DateTime("now", new DateTimeZone("UTC"));

                            //Import in Datenbank
                            $inStat = $con->prepare("INSERT INTO entwickler_app_spenden(kundennummer, app_name, app_package, utc, app_version, datei_name, passwort) VALUES(:kn, :an, :pn, :utc, :ver, :dn, :pw");
                            $inStat->execute(array(":kn" => "E" . $kundennummer, ":an" => $appname, ":pn" => $package, ":utc" => $date_utc, ":ver" => $version, ":dn" => $zip, ":pw" => $passwort));
                            

                            $array['format'] = mime_content_type($zip);
                            $array['response'] = "erfolgreich hochgeladen";
                            echo json_encode($array);
        
                        }else{
                            $array['format'] = mime_content_type($zip);
                            $array['response'] = "nicht erfolgreich hochladen";
                            echo json_encode($array);
                        }
        
                    }else{
                        $array['response'] = "falsches Format";
                        $array['format'] = mime_content_type($zip);
                        echo json_encode($array);
                    }


                

                
            }

        }


    }else{
        $array['response'] = "Abgemeldet.";
        echo json_encode($array);
    }

}


?>
 

Jw456

Top Contributor
Wenn du wirklich in diesem php Teil bist und genau dise Respons bekommst dann sind dise Variablen leer.

Mehr kann ich nicht sehen. Auch nicht welche URL du aufrufst und in welchen php Teil du somit bist.
 

wer112

Top Contributor
Wenn du wirklich in diesem php Teil bist und genau dise Respons bekommst dann sind dise Variablen leer.
Die Variablen können nicht Leer Sein, da ich es mit Volly den Aufruf ohne Probleme durch kam.
Mehr kann ich nicht sehen. Auch nicht welche URL du aufrufst und in welchen php Teil du somit bist.

Die URL stimmt, habe https://www. da stehen und bei Volly war die Session da, es liegt an OKhttp3.

Die URL Wird dir nixs nützen, da du über den Browser keine Session erhälst, nur über den App Store:
String url = "https://www.klug-aug.de/projekte/kl.../entwicklerPHP/console/app_spenden_upload.php";
 

Jw456

Top Contributor
Dann schaue dir doch mal den request mit einem siffer an. Und zwar den von volley und den von okhttp.

Kannst ja mal selber einer request zb mit Postman an den Server schicken, solltest da ja auch deine login Daten mitgeben.

Mit Browser war klar das es nicht geht hat auch keiner gesagt.


Ich kann mich aber auch noch erinnern das du immer eine id in den Shprefs gespeichert hast und das volley bei einem request mitgehen hast. Das sehe ich bei deinem Multipart Beispiel nicht.

Somit werden die Variablen auch leer sein. Sonst würde eine andre Antwort zurück kommen.


Ich habe momentan keine Zeit dafür.
 

wer112

Top Contributor
Dann schaue dir doch mal den request mit einem siffer an. Und zwar den von volley und den von okhttp.

Kannst ja mal selber einer request zb mit Postman an den Server schicken, solltest da ja auch deine login Daten mitgeben.
Postman geht bei mir nicht mehr.
Mit Browser war klar das es nicht geht hat auch keiner gesagt.


Ich kann mich aber auch noch erinnern das du immer eine id in den Shprefs gespeichert hast und das volley bei einem request mitgehen hast. Das sehe ich bei deinem Multipart Beispiel nicht.
Das mache ich schon lange nicht mehr.
Somit werden die Variablen auch leer sein. Sonst würde eine andre Antwort zurück kommen.
Session ist bei Volly da, aber nicht bei OKhttp3
Ich habe momentan keine Zeit dafür.
 

wer112

Top Contributor
PHP:
<?php
session_start();
include_once("includes/utf-8.php");
require "connecting/db.php";

$array = array();

$angemeldet = trim($_SESSION['angemeldet']);
$kundennummer = trim($_SESSION['kn']);


if(empty($angemeldet) or empty($kundennummer)){
    
    
    echo "Session fehler";


    


}else{

    if($angemeldet == 1){

        $guStat = $con->prepare("SELECT guthaben FROM entwickler_finanzen WHERE kundennummer = :kn");
        $guStat->execute(array(":kn" => "E" . $kundennummer));
        $guthaben = $guStat->fetchColumn();

        echo $guthaben;

    }else{
        
        
        echo "Du bist nicht angemeldet.";


        
    }

}

?>
Java:
 aLoadingDialog.show();

        RequestQueue queue = Volley.newRequestQueue(getActivity());

        StringRequest stringRequest = new StringRequest(Request.Method.POST, import_url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.e(TAG, response);

                String Response = response.trim();

                if (Response.equals("Session fehler")){
                    Toast.makeText(getActivity(), "Error 2. Bitte neu anmelden.", Toast.LENGTH_SHORT).show();
                    aLoadingDialog.dismiss();
                } else if (Response.equals("Du bist nicht angemeldet.")) {
                    Toast.makeText(getActivity(), "Error 3. Bitte neu anmelden.", Toast.LENGTH_SHORT).show();
                    aLoadingDialog.dismiss();
                }else{
                    aLoadingDialog.dismiss();
                    guthaben.setText(Response + "€");
                    guthabenInt = Response;
                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e(TAG, error.toString());
                aLoadingDialog.dismiss();
                Log.e(TAG, "Error 4: VError");
                Toast.makeText(getActivity(), "Error 4", Toast.LENGTH_SHORT).show();
            }
        });

        queue.add(stringRequest);
    }


Screenshot_20241022_195004_Klug_Store[1].jpg

Siehste Bei Volly funktioniert es.
 

Jw456

Top Contributor
Irgendwann, irgendwo wirst du der Queue deine Kontakt Daten schon mitgegeben haben.
Damit eine Session aufgebaut wird. In dem jetzt gezeigten Code hast du es nicht.


Das wirst du beim OkHttp sicherlich nicht gemacht haben.
 

wer112

Top Contributor
Irgendwann, irgendwo wirst du der Queue deine Kontakt Daten schon mitgegeben haben.
Damit eine Session aufgebaut wird. In dem jetzt gezeigten Code hast du es nicht.


Das wirst du beim OkHttp sicherlich nicht gemacht haben.
Ich gebe bei Volly das nicht extra mit.

Wie gebe ich es mit okhttp3 mit?

In okhttp2 kann man den Session mitgeben, aber nicht mit okhttp3.
 

Jw456

Top Contributor
Dann mache doch erstmal für deinen upload große Datei mit multipart eine eigne Anmeldung bei deinem Server also ein eigenes php.
 

wer112

Top Contributor
Dann mache doch erstmal für deinen upload große Datei mit multipart eine eigne Anmeldung bei deinem Server also ein eigenes php.
Wird nixs bringen, habe eine Test App gemacht mit Volly und Okhttp3 und nur bei Volly kommt die Session auf der zweiten Classe An:

MainActivity:
Java:
package com.example.session;

import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import java.io.IOException;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.CookieStore;
import java.util.HashMap;
import java.util.Map;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.RequestBody;

public class MainActivity extends AppCompatActivity {

    Button vollyButton, okhttpButton;

    EditText vollyEdit,okhttpEdit;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.activity_main);

        vollyEdit = (EditText)findViewById(R.id.editTextText);
        okhttpEdit = (EditText)findViewById(R.id.editTextText2);
        vollyButton = (Button)findViewById(R.id.button);
        vollyButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String vollyString = vollyEdit.getText().toString().trim();

                if (vollyString.isEmpty()){
                    vollyEdit.setError("Darf nicht leer sein");
                    vollyEdit.requestFocus();
                }

                SiCookieStore2 siCookieStore = new SiCookieStore2(MainActivity.this);
                CookieManager cookieManager = new CookieManager((CookieStore) siCookieStore, CookiePolicy.ACCEPT_ALL);
                CookieHandler.setDefault(cookieManager);

                String url = "https://www.klug-aug.de/projekte/java-forum/session.php";

                RequestQueue queue = Volley.newRequestQueue(MainActivity.this);

                StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        if (response.equals("erfolgreich")){
                            startActivity(new Intent(MainActivity.this, Volly.class));

                        }
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this, "Volly Fehler: "+ error, Toast.LENGTH_SHORT).show();
                        Log.e("Volley", "Error: " + error);
                    }
                }){
                    @Nullable
                    @Override
                    protected Map<String, String> getParams() throws AuthFailureError {
                        HashMap<String, String>param = new HashMap<>();
                        param.put("var", vollyString);
                        return param;

                    }
                };

                queue.add(stringRequest);
            }
        });

        okhttpButton = (Button) findViewById(R.id.button2);
        okhttpButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                String okString = okhttpEdit.getText().toString().trim();
                SiCookieStore2 siCookieStore = new SiCookieStore2(MainActivity.this);
                CookieManager cookieManager = new CookieManager((CookieStore) siCookieStore, CookiePolicy.ACCEPT_ALL);
                CookieHandler.setDefault(cookieManager);

                OkHttpClient client = new OkHttpClient();

                String url = "https://www.klug-aug.de/projekte/java-forum/session.php";

                RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
                        .addFormDataPart("var", okString)
                        .build();

                okhttp3.Request request = new okhttp3.Request.Builder()
                        .url(url)
                        .post(requestBody)
                        .build();

                client.newCall(request).enqueue(new Callback() {
                    @Override
                    public void onFailure(@NonNull Call call, @NonNull IOException e) {
                        Log.e("OkHttp3Error", "onFailure: " + e);

                    }

                    @Override
                    public void onResponse(@NonNull Call call, @NonNull okhttp3.Response response) throws IOException {
                        String Response = response.body().string().toString();
                        Log.e("Okhttp3", "Response: " + Response);


                        if (Response.equals("erfolgreich")){
                            startActivity(new Intent(MainActivity.this, Okhttp3.class));

                        }
                    }
                });
            }
        });
    }
}

MainActivityLayout:

XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="40dp"
        android:text="Volley"
        android:textSize="22sp"
        android:textStyle="bold"
        android:textColor="#000000"/>

    <EditText
        android:id="@+id/editTextText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView"
        android:layout_marginTop="50dp"
        android:ems="20"
        android:inputType="text"
        android:text="Name" />

    <com.google.android.material.button.MaterialButton
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/editTextText"
        android:layout_marginTop="50dp"
        android:layout_centerHorizontal="true"
        android:text="Senden" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="OKhttp"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/button"
        android:layout_marginTop="60dp"
        android:textColor="#000000"
        android:textStyle="bold"
        android:textSize="22sp"/>

    <EditText
        android:id="@+id/editTextText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView2"
        android:layout_marginTop="70dp"
        android:ems="20"
        android:inputType="text"
        android:text="Name" />

    <com.google.android.material.button.MaterialButton
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/editTextText2"
        android:layout_marginTop="50dp"
        android:layout_centerHorizontal="true"
        android:text="Button" />
</RelativeLayout>

Volly Klasse:

Java:
package com.example.session;

import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

public class Volly extends AppCompatActivity {

    TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_volly);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

       textView = (TextView)findViewById(R.id.textView3);

       String url = "https://www.klug-aug.de/projekte/java-forum/import.php";

        RequestQueue queue = Volley.newRequestQueue(Volly.this);

        StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                textView.setText(response);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(Volly.this, "VollyError: " + error, Toast.LENGTH_SHORT).show();
            }
        });

        queue.add(stringRequest);

    }
}

Okhttp3 Klasse:

Java:
package com.example.session;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.RequestBody;

public class Okhttp3 extends AppCompatActivity {

    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_okhttp3);

        textView = (TextView)findViewById(R.id.textView4);

        OkHttpClient client = new OkHttpClient();

        String url = "https://www.klug-aug.de/projekte/java-forum/session.php";




        RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
                .addFormDataPart("var2", "HELLO")
                .build();

        okhttp3.Request request = new okhttp3.Request.Builder()
                .url(url)
                .post(requestBody)
                .build();

        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(@NonNull Call call, @NonNull IOException e) {
                Log.e("OkHttp3Error", "onFailure: " + e);

            }

            @Override
            public void onResponse(@NonNull Call call, @NonNull okhttp3.Response response) throws IOException {
                String Response = response.body().string().toString();
                Log.e("Okhttp3Import", "Response: " + Response);


                //textView.setText(Response);

            }
        });
    }
}

Cookie Manager:
Java:
/**
 * Inspired from https://github.com/loopj/android-async-http
 * Die Lizens: Apache-Lizenz 2.0
 */

/**
 Der Code befindet sich auf: https://gist.github.com/manishk3008/2a2373c6c155a5df6326
 Die Lizens ist:
 Ich hoffe ich konnte euch helfen

 Mit freundlichen Grüße

 André Alfred Klug
 */

package com.example.session;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.net.HttpCookie;


/**
 * A simple wrapper for {@link HttpCookie} to work with {@link SiCookieStore2}
 * Gives power of serialization-deserialization to {@link HttpCookie}
 * @author Manish
 *
 */
public class SICookie2 implements Serializable {

    private HttpCookie mHttpCookie;
    /**
     *
     */
    private static final long serialVersionUID = 2532101328282342578L;

    /**
     *
     */
    public SICookie2(HttpCookie cookie) {
        this.mHttpCookie = cookie;
    }

    public HttpCookie getCookie() {
        return mHttpCookie;
    }

    private void writeObject(ObjectOutputStream out) throws IOException {
        out.writeObject(mHttpCookie.getName());
        out.writeObject(mHttpCookie.getValue());
        out.writeObject(mHttpCookie.getComment());
        out.writeObject(mHttpCookie.getCommentURL());
        out.writeBoolean(mHttpCookie.getDiscard());
        out.writeObject(mHttpCookie.getDomain());
        out.writeLong(mHttpCookie.getMaxAge());
        out.writeObject(mHttpCookie.getPath());
        out.writeObject(mHttpCookie.getPortlist());
        out.writeBoolean(mHttpCookie.getSecure());
        out.writeInt(mHttpCookie.getVersion());
    }

    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
        String name = (String) in.readObject();
        String value = (String) in.readObject();
        mHttpCookie = new HttpCookie(name, value);
        mHttpCookie.setComment((String) in.readObject());
        mHttpCookie.setCommentURL((String) in.readObject());
        mHttpCookie.setDiscard(in.readBoolean());
        mHttpCookie.setDomain((String) in.readObject());
        mHttpCookie.setMaxAge(in.readLong());
        mHttpCookie.setPath((String) in.readObject());
        mHttpCookie.setPortlist((String) in.readObject());
        mHttpCookie.setSecure(in.readBoolean());
        mHttpCookie.setVersion(in.readInt());
    }

}

Java:
/**
 * Inspired from https://github.com/loopj/android-async-http
 * Die Lizens: Apache-Lizenz 2.0
 */

/**
Der Code befindet sich auf: https://gist.github.com/manishk3008/2a2373c6c155a5df6326
Die Lizens ist:
Ich hoffe ich konnte euch helfen

Mit freundlichen Grüße

André Alfred Klug
 */

package com.example.session;


import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.CookieStore;
import java.net.HttpCookie;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import android.util.Log;


/**
 * Implementation of {@link CookieStore} for persistence cookies, uses shared
 * preference for storing cookies.
 *
 * @author Manish
 *
 */
public class SiCookieStore2 implements CookieStore {
    private static final String LOG_TAG = "SICookieStore2";
    private static final String COOKIE_PREFS = "com.orb.net.cookieprefs";
    private static final String COOKIE_DOMAINS_STORE = "com.orb.net.CookieStore.domain";
    private static final String COOKIE_DOMAIN_PREFIX = "com.orb.net.CookieStore.domain_";
    private static final String COOKIE_NAME_PREFIX = "com.orb.net.CookieStore.cookie_";

    /*This map here will store all domain to cookies bindings*/
    private final CookieMap map;

    private final SharedPreferences cookiePrefs;

    /**
     * Construct a persistent cookie store.
     *
     * @param context
     *            Context to attach cookie store to
     */
    public SiCookieStore2(Context context) {
        cookiePrefs = context.getSharedPreferences(COOKIE_PREFS, 0);
        map = new CookieMap();

        // Load any previously stored domains into the store
        String storedCookieDomains = cookiePrefs.getString(COOKIE_DOMAINS_STORE, null);
        if (storedCookieDomains != null) {
            String[] storedCookieDomainsArray = TextUtils.split(storedCookieDomains, ",");
            //split this domains and get cookie names stored for each domain
            for (String domain : storedCookieDomainsArray) {
                String storedCookiesNames = cookiePrefs.getString(COOKIE_DOMAIN_PREFIX + domain,
                        null);
                //so now we have these cookie names
                if (storedCookiesNames != null) {
                    //split these cookie names and get serialized cookie stored
                    String[] storedCookieNamesArray = TextUtils.split(storedCookiesNames, ",");
                    if (storedCookieNamesArray != null) {
                        //in this list we store all cookies under one URI
                        List<HttpCookie> cookies = new ArrayList<HttpCookie>();
                        for (String cookieName : storedCookieNamesArray) {
                            String encCookie = cookiePrefs.getString(COOKIE_NAME_PREFIX + domain
                                    + cookieName, null);
                            //now we deserialize or unserialize (whatever you call it) this cookie
                            //and get HttpCookie out of it and pass it to List
                            if (encCookie != null)
                                cookies.add(decodeCookie(encCookie));
                        }
                        map.put(URI.create(domain), cookies);
                    }
                }
            }
        }
    }

    public synchronized void add(URI uri, HttpCookie cookie) {
        if (cookie == null) {
            throw new NullPointerException("cookie == null");
        }

        uri = cookiesUri(uri);
        List<HttpCookie> cookies = map.get(uri);
        if (cookies == null) {
            cookies = new ArrayList<HttpCookie>();
            map.put(uri, cookies);
        } else {
            cookies.remove(cookie);
        }
        cookies.add(cookie);

        // Save cookie into persistent store
        SharedPreferences.Editor prefsWriter = cookiePrefs.edit();
        prefsWriter.putString(COOKIE_DOMAINS_STORE, TextUtils.join(",", map.keySet()));

        Set<String> names = new HashSet<String>();
        for (HttpCookie cookie2 : cookies) {
            names.add(cookie2.getName());
            prefsWriter.putString(COOKIE_NAME_PREFIX + uri + cookie2.getName(),
                    encodeCookie(new SICookie2(cookie2)));
        }
        prefsWriter.putString(COOKIE_DOMAIN_PREFIX + uri, TextUtils.join(",", names));

        prefsWriter.commit();
    }

    public synchronized List<HttpCookie> get(URI uri) {
        if (uri == null) {
            throw new NullPointerException("uri == null");
        }

        List<HttpCookie> result = new ArrayList<HttpCookie>();
        // get cookies associated with given URI. If none, returns an empty list
        List<HttpCookie> cookiesForUri = map.get(uri);
        if (cookiesForUri != null) {
            for (Iterator<HttpCookie> i = cookiesForUri.iterator(); i.hasNext();) {
                HttpCookie cookie = i.next();
                if (cookie.hasExpired()) {
                    i.remove(); // remove expired cookies
                } else {
                    result.add(cookie);
                }
            }
        }
        // get all cookies that domain matches the URI
        for (Map.Entry<URI, List<HttpCookie>> entry : map.entrySet()) {
            if (uri.equals(entry.getKey())) {
                continue; // skip the given URI; we've already handled it
            }
            List<HttpCookie> entryCookies = entry.getValue();
            for (Iterator<HttpCookie> i = entryCookies.iterator(); i.hasNext();) {
                HttpCookie cookie = i.next();
                if (!HttpCookie.domainMatches(cookie.getDomain(), uri.getHost())) {
                    continue;
                }
                if (cookie.hasExpired()) {
                    i.remove(); // remove expired cookies
                } else if (!result.contains(cookie)) {
                    result.add(cookie);
                }
            }
        }
        return Collections.unmodifiableList(result);
    }

    public synchronized List<HttpCookie> getCookies() {
        List<HttpCookie> result = new ArrayList<HttpCookie>();
        for (List<HttpCookie> list : map.values()) {
            for (Iterator<HttpCookie> i = list.iterator(); i.hasNext();) {
                HttpCookie cookie = i.next();
                if (cookie.hasExpired()) {
                    i.remove(); // remove expired cookies
                } else if (!result.contains(cookie)) {
                    result.add(cookie);
                }
            }
        }
        return Collections.unmodifiableList(result);
    }

    public synchronized List<URI> getURIs() {
        List<URI> result = new ArrayList<URI>(map.getAllURIs());
        result.remove(null); // sigh
        return Collections.unmodifiableList(result);
    }


    public synchronized boolean remove(URI uri, HttpCookie cookie) {
        if (cookie == null) {
            throw new NullPointerException("cookie == null");
        }

        if (map.removeCookie(uri, cookie)) {
            SharedPreferences.Editor prefsWriter = cookiePrefs.edit();
            prefsWriter.putString(COOKIE_DOMAIN_PREFIX + uri,
                    TextUtils.join(",", map.getAllCookieNames(uri)));
            prefsWriter.remove(COOKIE_NAME_PREFIX + uri + cookie.getName());
            prefsWriter.apply();
            return true;
        }
        return false;
    }

    public synchronized boolean removeAll() {
        // Clear cookies from persistent store
        SharedPreferences.Editor prefsWriter = cookiePrefs.edit();
        prefsWriter.clear();
        prefsWriter.commit();

        // Clear cookies from local store
        boolean result = !map.isEmpty();
        map.clear();
        return result;
    }

    /**
     * Serializes HttpCookie object into String
     *
     * @param cookie
     *            cookie to be encoded, can be null
     * @return cookie encoded as String
     */
    protected String encodeCookie(SICookie2 cookie) {
        if (cookie == null)
            return null;

        ByteArrayOutputStream os = new ByteArrayOutputStream();
        try {
            ObjectOutputStream outputStream = new ObjectOutputStream(os);
            outputStream.writeObject(cookie);
        } catch (IOException e) {
            Log.e(LOG_TAG, "IOException in encodeCookie", e);
            return null;
        }

        return byteArrayToHexString(os.toByteArray());
    }

    /**
     * Returns HttpCookie decoded from cookie string
     *
     * @param cookieString
     *            string of cookie as returned from http request
     * @return decoded cookie or null if exception occured
     */
    protected HttpCookie decodeCookie(String cookieString) {
        byte[] bytes = hexStringToByteArray(cookieString);
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);

        HttpCookie cookie = null;
        try {
            ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
            cookie = ((SICookie2) objectInputStream.readObject()).getCookie();
        } catch (IOException e) {
            Log.e(LOG_TAG, "IOException in decodeCookie", e);
        } catch (ClassNotFoundException e) {
            Log.e(LOG_TAG, "ClassNotFoundException in decodeCookie", e);
        }

        return cookie;
    }

    /**
     * Using some super basic byte array &lt;-&gt; hex conversions so we don't
     * have to rely on any large Base64 libraries. Can be overridden if you
     * like!
     *
     * @param bytes
     *            byte array to be converted
     * @return string containing hex values
     */
    protected String byteArrayToHexString(byte[] bytes) {
        StringBuilder sb = new StringBuilder(bytes.length * 2);
        for (byte element : bytes) {
            int v = element & 0xff;
            if (v < 16) {
                sb.append('0');
            }
            sb.append(Integer.toHexString(v));
        }
        return sb.toString().toUpperCase(Locale.US);
    }

    /**
     * Converts hex values from strings to byte arra
     *
     * @param hexString
     *            string of hex-encoded values
     * @return decoded byte array
     */
    protected byte[] hexStringToByteArray(String hexString) {
        int len = hexString.length();
        byte[] data = new byte[len / 2];
        for (int i = 0; i < len; i += 2) {
            data[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4) + Character
                    .digit(hexString.charAt(i + 1), 16));
        }
        return data;
    }
    /**
     * Utility function to male sure that every time you get consistent URI
     * @param uri
     * @return
     */
    private URI cookiesUri(URI uri) {
        if (uri == null) {
            return null;
        }
        try {
            return new URI(uri.getScheme(), uri.getHost(), null, null);
        } catch (URISyntaxException e) {
            return uri;
        }
    }
    /**
     * A implementation of {@link Map} for utility class for storing URL cookie map
     * @author Manish
     *
     */
    private class CookieMap implements Map<URI, List<HttpCookie>> {

        private final Map<URI, List<HttpCookie>> map;

        /**
         *
         */
        public CookieMap() {
            map = new HashMap<URI, List<HttpCookie>>();
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#clear()
         */
        @Override
        public void clear() {
            map.clear();
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#containsKey(java.lang.Object)
         */
        @Override
        public boolean containsKey(Object key) {

            return map.containsKey(key);
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#containsValue(java.lang.Object)
         */
        @Override
        public boolean containsValue(Object value) {

            return map.containsValue(value);
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#entrySet()
         */
        @Override
        public Set<Entry<URI, List<HttpCookie>>> entrySet() {

            return map.entrySet();
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#get(java.lang.Object)
         */
        @Override
        public List<HttpCookie> get(Object key) {

            return map.get(key);
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#isEmpty()
         */
        @Override
        public boolean isEmpty() {

            return map.isEmpty();
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#keySet()
         */
        @Override
        public Set<URI> keySet() {

            return map.keySet();
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#put(java.lang.Object, java.lang.Object)
         */
        @Override
        public List<HttpCookie> put(URI key, List<HttpCookie> value) {

            return map.put(key, value);
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#putAll(java.util.Map)
         */
        @Override
        public void putAll(Map<? extends URI, ? extends List<HttpCookie>> map) {
            this.map.putAll(map);
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#remove(java.lang.Object)
         */
        @Override
        public List<HttpCookie> remove(Object key) {

            return map.remove(key);
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#size()
         */
        @Override
        public int size() {

            return map.size();
        }

        /*
         * (non-Javadoc)
         *
         * @see java.util.Map#values()
         */
        @Override
        public Collection<List<HttpCookie>> values() {

            return map.values();
        }
        /**
         * List all URIs for which cookies are stored in map
         * @return
         */
        public Collection<URI> getAllURIs() {
            return map.keySet();
        }
        /**
         * Get all cookies names stored for given URI
         * @param uri
         * @return
         */
        public Collection<String> getAllCookieNames(URI uri) {
            List<HttpCookie> cookies = map.get(uri);
            Set<String> cookieNames = new HashSet<String>();
            for (HttpCookie cookie : cookies) {
                cookieNames.add(cookie.getName());
            }
            return cookieNames;
        }
        /**
         * Removes requested {@link HttpCookie} {@code httpCookie} from given {@code uri} value
         * @param uri
         * @param httpCookie
         * @return
         */
        public boolean removeCookie(URI uri, HttpCookie httpCookie) {
            if (map.containsKey(uri)) {
                return map.get(uri).remove(httpCookie);
            } else {
                return false;
            }

        }

    }
}

Session.php:

PHP:
<?php
session_start();

$variable = trim($_POST['var']);

$_SESSION['var'] = $variable;

echo "erfolgreich";


?>

Import.php:

PHP:
<?php
session_start();

$variable = $_SESSION['var'];

$okVariable = $_POST['var2'];

echo $variable;

?>

Bei OKHttp kommt keine Session an nur bei Volly.
 

Jw456

Top Contributor
Was ich erstmal sehe ist das du bei der OKHttp3 Activity das Session Php aufrufst und nicht Import, so wie in der Volley Activity.
In dem Session PHP wäre es auch gut die Variable „$variable“ zurück zugeben.
Damit du auch siehst was OKHttp sendet.
 

wer112

Top Contributor
Was ich erstmal sehe ist das du bei der OKHttp3 Activity das Session Php aufrufst und nicht Import, so wie in der Volley Activity.

Ich habe die URL auf import geändert, bekomme die Session nicht nur ein leeren Response:
In dem Session PHP wäre es auch gut die Variable „$variable“ zurück zugeben.

Wenn ich das so mache:
PHP:
<?php
session_start();

$variable = trim($_POST['var']);

$_SESSION['var'] = $variable;

echo $variable;


?>
Damit du auch siehst was OKHttp sendet.
bekomme ich die Variable erfolgreich zurück.
Wenn ich die Session aus session.php wieder aufrufe bekomme ich die Session auch.

Aber die werden nicht auf ein anderes PHP übertragen.

Deswegen kann ich okhttp3 nicht richtig verwenden, sonst könnte jeder Zugriff auf Die Werte vom App Store haben.

->
PHP:
<?php
session_start();

$variable = trim($_POST['var']);

$_SESSION['var'] = $variable;

$session = $_SESSION['var'];

echo $session;


?>
 

Jw456

Top Contributor
Dann wird wohl OkHttp nicht den Android HTTPCLIENT benutzen sondern einen andern (eigenen).



Vielleicht ist Retrofit besser kann da aber wenig dazu sagen.
 

wer112

Top Contributor
Dann wird wohl OkHttp nicht den Android HTTPCLIENT benutzen sondern einen andern (eigenen).
ICh möchte aus deine Quelle das benutzen:
Java:
cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
JavaNetCookieJar cookieJar = new JavaNetCookieJar(cookieManager);
// add cookies to cookiejar
cookieJar.saveFromResponse("Cookie", listOfCookiesToAdd);

OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.cookieJar(cookieJar)

Aber JavaNetCookieJar gibt es nicht bzw. finde ich die fertige Klasse nicht. Das habe ich alles bereits in #3 geschrieben. Bei dem Punkt war ich bereits.
Vielleicht ist Retrofit besser kann da aber wenig dazu sagen.
 

Ähnliche Java Themen

Neue Themen


Oben