Meine Serve-Seite sendet Set-Cookie auf Client-Antwort, aber auf Android-Seite bekomme ich nichts in Bezug auf Set-Cookie im Header. Mein Netzwerk-Stack auf Android ist Retrofit 2.Retrofit2 Set-Cookie nicht als Antwort vorhanden
Hier mein Anforderungscode,
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
String hostName = "https://www.mysupercoolhost.com";
CertificatePinner certificatePinner = new CertificatePinner.Builder()
.add(hostName, "sha256/p1")
.add(hostName, "sha256/p2")
.add(hostName, "sha256/p3")
.build();
OkHttpClient client = new OkHttpClient.Builder()
.addNetworkInterceptor(interceptor)
.certificatePinner(certificatePinner)
.build();
RequestBody rb = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), "{\"user\":\"test\"}");
Request request = new Request.Builder()
.method("POST", rb)
.addHeader("Content-Type", "application/json")
.url(hostName)
.addHeader("param1", "value1")
.addHeader("param2", "value2")
.build();
new Thread(new Runnable() {
@Override
public void run() {
try {
client.newCall(request).execute();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}).start();
Das gleiche Stück Code funktioniert in einfacher Java-Anwendung, und ich kann Werte abgeladen in Set-Cookie-Schlüssel, aber Es schlägt auf Android fehl.
Beachten Sie, dass meine Java-App Maven-Projekt mit nur Retrofit2 Abhängigkeiten ist.
Plätzchen auf dem Desktop empfangen ist so etwas wie
INFO: Set-Cookie: test_443=9182912.910219021.0000; path=/
Mar 03, 2017 11:53:08 AM okhttp3.internal.Platform log
INFO: Set-Cookie: cutypie=wandarabigstring; Path=/
Mar 03, 2017 11:53:08 AM okhttp3.internal.Platform log