0

我试图在我的 Android Instrumentationtest 中设置 cookie,如下所示:

  @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();

但结果为空。如何为该客户端设置 cookie?

谢谢

扎梅克

4

1 回答 1

0

它是Cookie和不是Set-Cookie;参见MockWebServerTest,例如:

.addHeader("Cookie: " + String.format("session_id=%s; Path=/xxx_teszt/", SESSION_ID))
于 2018-08-20T13:28:19.460 回答