java发送http请求,解析html返回问题
java发送http请求(含登陆用户名和密码),登陆结果解析html返回,为什么我这边会出问题啊?代码也没有什么问题啊!登录名和密码完全没用,返回的html文件总是网站首页未登录状态!!!求大神给指点一下!下面是代码!public class TestPost {
public static void testPost() throws IOException {
/**
* 首先要和URL下的URLConnection对话。 URLConnection可以很容易的从URL得到。比如: // Using
*java.net.URL and //java.net.URLConnection
*/
URL url = new URL("https://passport.csdn.net/account/login");
URLConnection connection = url.openConnection();
/**
* 然后把连接设为输出模式。URLConnection通常作为输入来使用,比如下载一个Web页。
* 通过把URLConnection设为输出,你可以把数据向你个Web页传送。下面是如何做:
*/
connection.setDoOutput(true);
/**
* 最后,为了得到OutputStream,简单起见,把它约束在Writer并且放入POST信息中,例如: ...
*/
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "8859_1");
out.write("username=go_shq&password=**********"); //post的关键所在!
// remember to clean up
out.flush();
out.close();
/**
* 这样就可以发送一个看起来象这样的POST:
* POST /jobsearch/jobsearch.cgi HTTP 1.0 ACCEPT:
* text/plain Content-type: application/x-www-form-urlencoded
* Content-length: 99 username=bob password=someword
*/
// 一旦发送成功,用以下方法就可以得到服务器的回应:
String sCurrentLine;
String sTotalString;
sCurrentLine = "";
sTotalString = "";
InputStream l_urlStream;
l_urlStream = connection.getInputStream();
// 传说中的三层包装阿!
BufferedReader l_reader = new BufferedReader(new InputStreamReader(l_urlStream));
while ((sCurrentLine = l_reader.readLine()) != null) {
sTotalString += sCurrentLine;
}
//System.out.println(sTotalString);
File f = new File("d:/b.html");
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write(sTotalString);
bw.close();
}
public static void main(String[] args) throws IOException {
testPost();
}
} :dizzy::dizzy::dizzy:求解救啊!! 伙计,建议你先理解下http协议,至少要先搞懂get/post请求。
你这么发送请求也太小看CSDN了吧,你先抓包看看登陆流程的数据。 回复 3# ddd010
恩,这个是原来另一个网站的用户登录数据,在csdn上是不行,但是我也抓过csdn的是下面这样的数据
ccounthandler.ashx?t=log&u=sdfwq&p=sqwefa&remember=0&f=http%3A%2F%2Fwww.csdn.net%2F&rand=0.673421390587464
我用这样的数据试了一下还是不行的!代码了解了一下,只懂意思,但是为什么不行还是要请教一下专业方面的
剁猪肉馅 发表于 2014-03-13 09:51 static/image/common/back.gif
回复 3# ddd010
恩,这个是原来另一个网站的用户登录数据,在csdn上是不行,但是我也抓过csdn的是下面这样 ...
不对,请求头,回应头,这些数据你都不管? 请求头,回应头?这些都是什么?:dizzy: 回复 5# ddd010
请求头,回应头?这些都是什么? 我在抓取登陆流程的时候没看到这些啊。
页:
[1]