模拟登陆实现不了!求解!!
import java.awt.image.BufferedImage;import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
import javax.imageio.ImageIO;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class main2 {
public static void test()throws Exception {
//-----------------先获取cookie-----------------//
String k="http://www.188w.com";
URL url = new URL(k);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setUseCaches(false);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setConnectTimeout(20000);
connection.setReadTimeout(10000);
connection.setRequestMethod("GET");
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 8.0; Windows 7)");
connection.connect();
String cookies = connection.getHeaderField("Set-Cookie");
if (cookies!= null)
{
cookies = cookies.substring(0, cookies.indexOf(";"));
}
String codecookie=cookies+"; AJSTAT_ok_pages=1; AJSTAT_ok_times=1";
connection.disconnect();
//----------------获取验证码保存到本地!--------------//
String ki="http://www.188w.com/public/script/identifyCode.php";
URL url1 = new URL(ki);
HttpURLConnection connec = (HttpURLConnection) url1.openConnection();
connec.setUseCaches(false);
connec.setDoOutput(true);
connec.setDoInput(true);
connec.setConnectTimeout(20000);
connec.setReadTimeout(20000);
connec.setRequestMethod("GET");
connec.setRequestProperty("Cookie",codecookie);
connec.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 8.0; Windows 7)");
connec.connect();
System.out.println(codecookie);
File imgCodeFile = new File("/Users/mac/Documents/workspace/demo/picture/" + System.currentTimeMillis() + ".gif");
BufferedImage image = ImageIO.read(connec.getInputStream());
ImageIO.write(image, "gif", imgCodeFile);
connec.disconnect();
//-------------------登陆-----------------------//
String checkCode = GetCheckCode();
String userName = "loli520";
String password = "wrfl1346";
String params="username="+userName+"&password="+ password+"&passwordQues=3&passwordQuesA=wrf&code="+checkCode;
URL Url = new URL("http://www.188w.com/user/login");
HttpURLConnection connect = (HttpURLConnection) Url.openConnection();
connect.setUseCaches(false);
connect.setDoOutput(true);
connect.setDoInput(true);
connect.setConnectTimeout(10000);
connect.setReadTimeout(10000);
connect.setRequestMethod("POST");
connect.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 8.0; Windows 7)");
connect.setRequestProperty("Cookie", codecookie);
connect.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connect.setRequestProperty("Content-Length", String.valueOf(params.length()));
connect.connect();
OutputStreamWriter out = new OutputStreamWriter(connect.getOutputStream(), "UTF-8");
out.write(params); //post的关键所在!
out.flush();
out.close();
connect.disconnect();
//再次请求主页
HttpURLConnection Hi = (HttpURLConnection) url.openConnection();
Hi.setUseCaches(false);
Hi.setDoOutput(true);
Hi.setDoInput(true);
Hi.setConnectTimeout(10000);
Hi.setReadTimeout(10000);
Hi.setRequestMethod("GET");
Hi.setRequestProperty("Cookie", codecookie);
Hi.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 8.0; Windows 7)");
Hi.connect();
String sCurrentLine;
String sTotalString;
sCurrentLine = "";
sTotalString = "";
InputStream l_urlStream;
l_urlStream = Hi.getInputStream();
BufferedReader l_reader = new BufferedReader(new InputStreamReader(l_urlStream));
while ((sCurrentLine = l_reader.readLine()) != null)
{
sTotalString += sCurrentLine + "\r\n";
}
System.out.println(sTotalString);
Hi.disconnect();
}
// ------------------------输入验证码!------------//
private static String GetCheckCode()
{
Scanner sc = new Scanner(System.in);
System.out.println("验证码在/Users/mac/Documents/workspace/demo/picture/目录下 ,请你查看并输入:");
String inputCode = sc.next();
return inputCode;
}
public static void main(String[] args) throws Exception {
test();
}
} --------------------编程问答-------------------- 我在eclipse下模拟请求,抓包居然没有抓到post请求!!!
[size=18px]如果大神能帮我发现错误,我回去手抄此代码20遍,发图为证!(我豁出去了)/size] --------------------编程问答-------------------- 你抓包抓得对的话,那就是在发Post的加断点呗。 --------------------编程问答-------------------- 兄弟啊,加点代码高亮吧!这很不耐看的。。。 --------------------编程问答-------------------- 我刚去其他板块发了个贴,现在没有编辑功能了!见谅哈! --------------------编程问答-------------------- 现在还是很难解决啊! --------------------编程问答-------------------- 楼主登陆的时候没有提示验证码不正吗? --------------------编程问答--------------------
没有,直接是返回的信息提示没有登陆,我再登陆的同时抓包,居然没有抓到我请求的post,这不可能啊,兄台,是否愿意加一下我qq272420238 指导一下!不胜感激之!
补充:Java , Java SE