Apache HttpClient не получает все файлы cookie? - PullRequest
0 голосов
/ 17 мая 2011

Я писал раньше, но теперь, похоже, вижу проблему, просто не могу ее исправить.

Я пытаюсь войти на свой школьный сайт, возможно, даже сделать приложение позже, и когдаЯ использую Chrome для проверки создаваемых файлов cookie, я получаю все это,

Cookie:appName=chippewa_falls; tool=""; selection=""; districtID=1; endYear=2011; calendarID=0; permCalendarID=0; JSESSIONID=BE5AEF51EAA72975150FC2D0F77DDE13

Но когда моя программа печатает все полученные файлы cookie, я получаю только это

  • [version: 0][name: JSESSIONID][value: BC1BAA33BEB23DC27B7883AC24934A1D][domain: campus.chipfalls.k12.wi.us][path: /campus][expiry: null]

вот мой код,

public static void main(String[] args) throws Exception {


    DefaultHttpClient httpclient = new DefaultHttpClient();
    HttpGet httpget = new HttpGet("https://campus.chipfalls.k12.wi.us/campus/portal/chippewa_falls.jsp");
    httpget.addHeader("Referer", "http://cfsd.chipfalls.k12.wi.us//high/");
    HttpResponse response = httpclient.execute(httpget);
    HttpEntity entity = response.getEntity();

    System.out.println("Login form get: " + response.getStatusLine());
    if (entity != null) {
        InputStream input = entity.getContent();
        BufferedReader reader = new BufferedReader(new InputStreamReader(input));
        String ln = "";
        while((ln = reader.readLine()) != null) {
            System.out.println("During Get - " + ln);
        }
    }
    System.out.println("Initial set of cookies:");
    List<Cookie> cookies = httpclient.getCookieStore().getCookies();

    if (cookies.isEmpty()) {
        System.out.println("None");
    } else {
        for (int i = 0; i < cookies.size(); i++) {
            System.out.println("- " + cookies.get(i).toString());
        }
    }

Обратите внимание, что это только для части GET,

Спасибо за любую помощь:)

Редактировать: я забыл упомянуть, что он использует HTTPS, но, честно говоря, я не знаю, имеет ли это значение для клиента apache или нет.

1 Ответ

0 голосов
/ 17 мая 2011

Эти куки должны быть установлены ПОСЛЕ вашего входа в систему, а не раньше. Глядя на вывод с wget URL-адреса, который у вас есть выше, вы видите это:

Resolving campus.chipfalls.k12.wi.us... 205.213.253.11
Connecting to campus.chipfalls.k12.wi.us|205.213.253.11|:443... connected.
WARNING: Certificate verification error for campus.chipfalls.k12.wi.us: self signed certificate in certificate chain
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Server: Apache-Coyote/1.1
  Set-Cookie: JSESSIONID=004549BDBCBDFB8289EBF859A4E743B2; Path=/campus; Secure
  Content-Type: text/html;charset=utf-8
  Content-Length: 6352
  Date: Tue, 17 May 2011 06:00:38 GMT
  Connection: keep-alive
Length: 6,352 (6.2K) [text/html]

это то же самое, что вы видите. Пока вы не войдете в систему, вы не увидите другие файлы cookie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...