【发布时间】: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