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))