2

Java で POST を作成するときに、どの Cookie が送信されているかを読み取るのに問題があります。

これが私のコードです:

public static void main(String[] args) throws MalformedURLException, IOException {
    String urlParameters = "votebut=";
    String request = "http://www.runelocus.com/toplist/vote-17648.html";
    URL url = new URL(request);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setDoInput(true);
    connection.setInstanceFollowRedirects(false);
    connection.setRequestMethod("POST");
    connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0");
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    connection.setRequestProperty("charset", "utf-8");
    connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length));
    connection.setUseCaches(false);

    DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
    wr.writeBytes(urlParameters);
    wr.flush();
    wr.close();
    List<String> cookies = connection.getHeaderFields().get("Set-Cookie");
    for (String cookie : cookies) {
        System.out.println("Cookies: " + cookie);
    }
    connection.disconnect();
}

これはそれが印刷するものです:
Cookies: PHPSESSID=48863f8c3adcbddf0e77e7f1b450fc0e; path=/

これは私が印刷したいものです:
ki_u=68debd85-c1af-f1ff-2e6c-4146755c6e26; ki_t=1354418220596%3B1354418220596%3B1354422379616%3B1%3B36;

何か助けてください。

ありがとう

4

1 に答える 1

1

そのCookieをそのように読み取ることはできません。

それに応じて、応答ヘッダーでhttp://www.rune...17648.htmlのみCookieを取得します。PHPSESSID

あなたが探しているそのクッキー(ki_uki_t)は、このファイルのJavaScriptコードによって設定されています:

http://s3.amazonaws.com/ki.js/45645/919.js

したがって、実際にそのCookie値を取得するには、ブラウザーの動作を複製するか、実際にブラウザーを使用する必要があります(htmlページを要求し、解析し、参照されるリソース(特に919.js)をダウンロードしてJavaScriptコードを実行します)。

于 2012-12-02T04:30:19.160 に答える