基于Java apache Httpclient表单的登录myspace

基于Java apache Httpclient表单的登录myspace,java,forms,apache,login,httpclient,Java,Forms,Apache,Login,Httpclient,因此,我尝试使用Apache的HttpClient v.4登录到一个网站(在本例中为myspace),但我不确定在这个过程中哪里出了问题,当我测试这段代码时,登录后的cookie与初始登录cookie相同,但这不应该是错误的 我在网上四处寻找,看看是否有人尝试过,但我还没有找到一个适合我的好资源 我用这个例子:(Facebook) 为什么您认为最初的cookie和后期cookie应该不同?应用服务器端为客户端分配一组cookie,并且通常在整个会话期间保持不变 应用服务器将一组与会话相关联的属性

因此,我尝试使用Apache的HttpClient v.4登录到一个网站(在本例中为myspace),但我不确定在这个过程中哪里出了问题,当我测试这段代码时,登录后的cookie与初始登录cookie相同,但这不应该是错误的

我在网上四处寻找,看看是否有人尝试过,但我还没有找到一个适合我的好资源

我用这个例子:(Facebook)


为什么您认为最初的cookie和后期cookie应该不同?应用服务器端为客户端分配一组cookie,并且通常在整个会话期间保持不变


应用服务器将一组与会话相关联的属性关联起来(使用cookies作为查找),这就是决定会话是否“登录”的原因。

为什么您认为初始cookies和后期cookies应该不同?应用服务器端为客户端分配一组cookie,并且通常在整个会话期间保持不变


应用服务器将一组与会话关联的属性关联起来(使用cookies作为查找),这就是决定会话是否“登录”的原因。

这里没有提到的一点是,为了成功打开经过身份验证的
URLConnection
,您需要设置在服务器上进行身份验证后收到的cookie
URLConnection

    URL myUrl = new URL("http://yourdomain/your/page);

    URLConnection urlConn = myUrl.openConnection();

    for (int i = 0; i < cookies.size(); i++) {
        System.out.println("- " + cookies.get(i).toString());
        urlConn.setRequestProperty("Cookie",cookies.get(i).getName() + "=" + cookies.get(i).getValue());
    }
    urlConn.connect();

    InputStream io = (InputStream) urlConn.getContent();


    // print out the response
    List<String> readLines = IOUtils.readLines(io);

    for (String line : readLines) {
        System.out.println (line);
    }
URL myUrl=新URL(“http://yourdomain/your/page);
URLConnection urlConn=myUrl.openConnection();
对于(int i=0;i
这里没有提到的一件事是,为了成功打开经过身份验证的
URLConnection
,您需要设置在服务器上进行身份验证后收到的cookie
URLConnection

    URL myUrl = new URL("http://yourdomain/your/page);

    URLConnection urlConn = myUrl.openConnection();

    for (int i = 0; i < cookies.size(); i++) {
        System.out.println("- " + cookies.get(i).toString());
        urlConn.setRequestProperty("Cookie",cookies.get(i).getName() + "=" + cookies.get(i).getValue());
    }
    urlConn.connect();

    InputStream io = (InputStream) urlConn.getContent();


    // print out the response
    List<String> readLines = IOUtils.readLines(io);

    for (String line : readLines) {
        System.out.println (line);
    }
URL myUrl=新URL(“http://yourdomain/your/page);
URLConnection urlConn=myUrl.openConnection();
对于(int i=0;i
缺少哪些cookie,您如何知道它们丢失了?当它打印出初始cookie和登录后cookie时,它们是相同的,因此我假设这意味着它没有正确登录。但它实际上没有正确登录吗?我真的不知道它是否正确登录,这就是我想说的。在你尝试登录后试试怎么样?或者查看响应以了解发生了什么?丢失了哪些cookie,您如何知道它们丢失了?当它打印出初始cookie和登录后cookie时,它们是相同的,所以我假设这意味着它没有正确登录。但它确实没有正确登录吗?我真的不知道它是否正确登录,这就是我的意思。在你尝试登录后尝试一下怎么样?或者查看响应以了解发生了什么?那么,我应该将这些cookie传递给我创建的每个新URL连接吗?因为此时,当我创建一个新的URL时,会话不会被保存。是的。为了让应用服务器识别“会话”,你需要在你的URLConnection中传递与“会话”关联的cookies。看看我的原始帖子和我粘贴的cookies,我是否需要将这三个cookies都添加到URLConnection中?因为仅仅添加最后一行不起作用。我使用的代码是:urlConn.setRequestProperty(“Cookie”,mycokie);但是上面说,要将多个cookie()放在一起;'sI还尝试执行urlConn.setRequestProperty(“sessiondF2”,thirdCookie的值);但是它也不起作用。所以我应该把这些cookie传递给我创建的每个新的URLConnection吗?因为此时,当我创建一个新的URL时,会话不会被保存。是的。为了让应用服务器识别“会话”,你需要在你的URLConnection中传递与“会话”关联的cookies。看看我的原始帖子和我粘贴的cookies,我是否需要将这三个cookies都添加到URLConnection中?因为仅仅添加最后一行不起作用。我使用的代码是:urlConn.setRequestProperty(“Cookie”,mycokie);但是上面说,要将多个cookie()放在一起;'sI还尝试执行urlConn.setRequestProperty(“sessiondF2”,thirdCookie的值);但它也不起作用。
    URL myUrl = new URL("http://yourdomain/your/page);

    URLConnection urlConn = myUrl.openConnection();

    for (int i = 0; i < cookies.size(); i++) {
        System.out.println("- " + cookies.get(i).toString());
        urlConn.setRequestProperty("Cookie",cookies.get(i).getName() + "=" + cookies.get(i).getValue());
    }
    urlConn.connect();

    InputStream io = (InputStream) urlConn.getContent();


    // print out the response
    List<String> readLines = IOUtils.readLines(io);

    for (String line : readLines) {
        System.out.println (line);
    }