【问题标题】:Java POST HTTPsUrlConnection returns 200 responseJava POST HTTPSUrlConnection 返回 200 响应
【发布时间】:2011-03-17 02:28:33
【问题描述】:

我正在尝试将一些登录数据发布到表单中,以便从响应中获取 cookie。 网址为:https://www.deviantart.com/users/login

但是我无法让服务器返回 FOUND 302 但只有 200,所以我认为我正在以某种方式处理我的查询字符串或标题:

try {
        String query = URLEncoder.encode("&username="+user+"&password="+password+"&remember_me=1", "UTF-8");
        URL url = new URL("https://www.deviantart.com/users/login");
        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
        HttpsURLConnection.setFollowRedirects(false);

        conn.setRequestMethod("POST");
        conn.setRequestProperty("Host", "www.deviantart.com");
        conn.setRequestProperty("User-Agent", "Mozilla 4.0");
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        conn.setRequestProperty("Content-Length", String.valueOf(query.length()));
        conn.setRequestProperty("Content-Language", "en-US");

        conn.setUseCaches(false);
        conn.setDoOutput(true);
        conn.setDoInput(true);

        PrintWriter out = new PrintWriter(conn.getOutputStream(), false);
        out.write(query);
        out.flush();

【问题讨论】:

  • 您确定使用有效用户名和密码发送到deviantart.com/users/login 的 POST 返回 302 而不是 200 OK?我尝试使用浏览器登录,我注意到响应是 200 OK 而不是 302。

标签: java forms http-post httpurlconnection


【解决方案1】:

据我所知,得到响应“200”是正常的,这意味着您的请求已被识别并正确回答。

但当我需要了解 HTTP 代码响应和一些细节时,我通常使用此链接:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

希望对你有帮助...

【讨论】:

    【解决方案2】:

    302 响应是一个重定向...告诉浏览器转到另一个页面。站点登录页面通常会这样做以将用户发送到“登录成功”页面,或返回主页或用户最初查看的页面。但这不是必须的。

    200 响应意味着“成功”,对于 POST 请求,浏览器将停留在登录页面。

    我不担心得到 200 而不是 302。如果您从 Java 应用程序发送请求,您可能不在乎网站在登录后将您重定向到哪里。重要的是您的凭据是否已被接受,您只能通过尝试需要身份验证的请求来确定。 (您需要确保您的代码捕获了对登录 POST 的响应设置的 cookie。它们需要在后续请求中提供。)

    如果您担心自己“破坏”了登录 URL 查询字符串,请获取登录页面并查看其来源以查看表单中是否有任何隐藏的输入。

    【讨论】:

      猜你喜欢
      • 2018-10-11
      • 1970-01-01
      • 2017-09-30
      • 2017-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      相关资源
      最近更新 更多