Android Espresso MockWebserver устанавливает файлы cookie

Я пытался установить куки в моем Android Instrumentationtest, как это:

  @Override
protected MockResponse onDispatch(RecordedRequest request) {
    if (request.getPath().startsWith("/?loginkulcs=")) {
        MockResponse response = new MockResponse()
                .setStatus(new BasicStatusLine(new ProtocolVersion("HTTP",1,1), 302, "Moved Temporarily").toString())
                .setHeaders(new Headers.Builder()
                        .add("Date", LocalDateTime.now().toString("ddd, dd MMM yyyy HH:mm:ss Z"))
                        .add("Server", "GlassFish Server Open Source Edition 3.1.2.2")
                        .add("X-Powered-By", "Servlet/3.0 JSP/2.2 (GlassFish Server Open Source Edition 3.1.2.2 Java/Oracle Corporation/1.7)")
                        .add("Location","https://xxx.jsp")
                        .add("Content-Type","text/html;charset=ISO-8859-1")
                        .add("Content-Language","en-US")
                        .add("Content-Length","227")
                        .add("Keep-Alive","timeout=5, max=100")
                        .add("Connection", "Keep-Alive")
                        .add("Set-Cookie", String.format("session_id=%s; Path=/xxx_teszt/", SESSION_ID))
                        .add("Set-Cookie", "regisztralt=IGEN; Path=/xxx_teszt/")
                        .add("Set-Cookie", "session_id=2084e74283d5073c5f4d324f17e2; Path=/xxx_teszt; HttpOnly")
                        .build());
        return response;
    }
    return null;

}

клиент android - org.apache.http.impl.client.DefaultHttpClient, и он читает файлы cookie следующим образом:

client.getCookieStore () getCookies().

Но результат нулевой. Как я могу установить куки для этого клиента?

Спасибо

Zamek

1 ответ

Это Cookie и не Set-Cookie; посмотрите MockWebServerTest, например:

.addHeader("Cookie: " + String.format("session_id=%s; Path=/xxx_teszt/", SESSION_ID))
Другие вопросы по тегам