java - HttpUrlConnection Cookie

标签 java httpurlconnection

我的代码工作正常,但服务器响应 2 个 Set-Cookie。问题是 Session-ID 位于第一个,而 getHeaderField("Set-Cookie") 仅返回最后一个 Set-Cookie。我怎样才能得到第一个?这是我的意思的图片:

http://www.pic-upload.de/view-22334619/Unbenannt.png.html

import java.awt.BufferCapabilities;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import java.net.URLEncoder;
import java.util.List;
import java.util.Scanner;

import javax.net.ssl.HttpsURLConnection;

import org.omg.CORBA.portable.OutputStream;

public class main {
public static void main(String[] args) throws IOException {
CookieHandler.setDefault(new CookieManager());
String rawData = "";
String type = "application/x-www-form-urlencoded";
URL u = new URL("http://speed.die-kreuzzuege.de/index.php?action=login&user=USERNAME&pw=PW&antibot=&guest=&check=");
HttpURLConnection conn = (HttpURLConnection) u.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty( "Content-Type", type );
java.io.OutputStream os = conn.getOutputStream();

String cookie = conn.getHeaderField("Set-Cookie");
    if (cookie != null)
           System.out.println("cookie: " + cookie)
}
}

最佳答案

尝试使用getHeaderFields() 。它返回 Map<String, List<String>>这样您就可以获得 header 值的列表:

    for(String cookie : conn.getHeaderFields().get("Set-Cookie")){
        System.out.println("cookie: " + cookie);
    }

希望有帮助。

关于java - HttpUrlConnection Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21929726/

相关文章:

java - 一个字符的字符串可以转换为字符吗?

java - 如何使用我构建的模型在 Weka 中测试单个实例?

Android 从 URL 下载 PDF,然后使用 PDF 阅读器打开它

android - 21000 毫秒的套接字超时从何而来?

java - Go SHA-256 哈希不同于 Java SHA-256 哈希

JavaFx - 方法未定义

java - 我可以在它死后重新启动一个线程吗?

Java POST 请求从 Web 服务获取 token

android - java.security.cert.CertPathValidatorException : Could not validate certificate

java - 发送 GET 请求后,HttpURLConnection 返回响应代码 500,即使它在本地工作