C#.在网上搜了一些信息,但是没有解决方案:
http://topic.csdn.net/u/20110720/15/7D0518CF-625E-465E-A830-AAFC2E7A89BD.html
http://topic.csdn.net/u/20110120/14/9d4e3fc5-014d-4d4a-baff-461b2f4740f2.html--------------------------------------------------------------------
HttpRequest Post后返回的结果HTML如下,显示已经登录,里面好像有COOKIE的信息,我尝试把document.cookie里面的字符串转换成cookiestring,在下次在取页面的时候显示还是未登录。大家看,下面还有3个URL地址,不知道这3个地址是干嘛的?
我试过依次用HttpRequest访问这3个URL,都可以访问,而且都有COOKIE,但是拿这3个COOKIE来访问下个页面还是未登录。
---------------------------------------------------------------------
如果用IE登录,我用Fiddler抓取的话,第一个登录页面就会有COOKIE的,然后fiddler显示确实是依次访问了下面3个网址。
--------------------------------------------------------------------<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="http://passport.tianya.cn:80/" />
<!-- <meta http-equiv="refresh" content="2;URL=http://my.tianya.cn/"/>--><title>登录中......</title>
<script>
document.cookie='user=w=用户名&id=47317780&f=1;expires='+(new Date(new Date().getTime()+2592000*1000)).toGMTString()+';path=/;domain=tianya.cn';
document.cookie='temp=k=685683557&s=&t=1295507094&b=8c2375a263bd1826a2ed402abd915446&ct='+parseInt(new Date().getTime()/1000)+';expires='+(new Date(new Date().getTime()+28800*1000)).toGMTString()+';path=/;domain=tianya.cn';
document.cookie='sso=r=1975164433&sid=D714B1EDA76BB89465410F5D51C8320B&wsid=7A3EE0B833B0E3C08C39AE4FB246CFC9;expires='+(new Date(new Date().getTime()+28800*1000)).toGMTString()+';path=/;domain=tianya.cn';
document.cookie='right=web4=n&portal=n;expires='+(new Date(new Date().getTime()+2592000*1000)).toGMTString()+';path=/;domain=tianya.cn';
document.cookie='temp4=rm=;expires='+(new Date(new Date().getTime()+2592000*1000)).toGMTString()+';path=/;domain=tianya.cn';
</script> <script type="text/javascript" src="http://passport.tianyaclub.com/domain.jsp?cookieTime=1295507094&portalValue=&rightCookie=false&rmCookieCode=&isActivatedUser=&idWriter=47317780&writer=imbigsnake1&intKey=685683557&chvSysGradeList=&sysGrade=&domain=tianyaclub.com&flag=660b3f51149f6033665971af804ee8d9&rmCode=false"></script>
<script type="text/javascript" src="http://passport.hainan.net/domain.jsp?cookieTime=1295507094&portalValue=&rightCookie=false&rmCookieCode=&isActivatedUser=&idWriter=47317780&writer=imbigsnake1&intKey=685683557&chvSysGradeList=&sysGrade=&domain=hainan.net&flag=660b3f51149f6033665971af804ee8d9&rmCode=false"></script>
<script type="text/javascript" src="http://passport.hiholiday.com/domain.jsp?cookieTime=1295507094&portalValue=&rightCookie=false&rmCookieCode=&isActivatedUser=&idWriter=47317780&writer=imbigsnake1&intKey=685683557&chvSysGradeList=&sysGrade=&domain=hiholiday.com&flag=660b3f51149f6033665971af804ee8d9&rmCode=false"></script>
</head><body>
<!--
<form name="buffer" action="http://my.tianya.cn/" method="post">
-->
<script >
location.href="http://my.tianya.cn/";
//document.buffer.submit();
//location.href="http://my.tianya.cn/";
var url="http://my.tianya.cn/";
function jump(url){
var e = document.createElement("a");
e.href = url;
document.body.appendChild(e);
e.click();
}
</script>
<!-- </form>-->
</body></html>--------------------------------------------------
登录的URL是:http://passport.tianya.cn/login.jsp?fowardURL=http%3A%2F%2Fmy.tianya.cn%2F&vwriter=用户名&vpassword=密码
---------------------------------------------------
HTTPrequest的C#代码应该没有问题,因为我登录其他网站都可以取到cookie,用这个cookieContoner都可以访问其他页面的资源。
------------------------------------------------------
我还试过这个:用webbrowser控件访问http://passport.tianya.cn/login.jsp?fowardURL=http%3A%2F%2Fmy.tianya.cn%2F&vwriter=用户名&vpassword=密码,可以登录,然后用代码去取WebBrower的COOKIE string,可以取到,然后新建一个HTTP request(用取到的COOKIE string) 去访问网址的话还是显示未登录.
其实我觉得应该用同一个cookieContiner取访问下个网页,但是webBrowser的控件取不到cookiecontiner,只能取到cookie.
------------------------------------------------------此问题困扰好几天了,请各位大大帮忙看看!如果解决我再加200分!
http://topic.csdn.net/u/20110720/15/7D0518CF-625E-465E-A830-AAFC2E7A89BD.html
http://topic.csdn.net/u/20110120/14/9d4e3fc5-014d-4d4a-baff-461b2f4740f2.html--------------------------------------------------------------------
HttpRequest Post后返回的结果HTML如下,显示已经登录,里面好像有COOKIE的信息,我尝试把document.cookie里面的字符串转换成cookiestring,在下次在取页面的时候显示还是未登录。大家看,下面还有3个URL地址,不知道这3个地址是干嘛的?
我试过依次用HttpRequest访问这3个URL,都可以访问,而且都有COOKIE,但是拿这3个COOKIE来访问下个页面还是未登录。
---------------------------------------------------------------------
如果用IE登录,我用Fiddler抓取的话,第一个登录页面就会有COOKIE的,然后fiddler显示确实是依次访问了下面3个网址。
--------------------------------------------------------------------<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="http://passport.tianya.cn:80/" />
<!-- <meta http-equiv="refresh" content="2;URL=http://my.tianya.cn/"/>--><title>登录中......</title>
<script>
document.cookie='user=w=用户名&id=47317780&f=1;expires='+(new Date(new Date().getTime()+2592000*1000)).toGMTString()+';path=/;domain=tianya.cn';
document.cookie='temp=k=685683557&s=&t=1295507094&b=8c2375a263bd1826a2ed402abd915446&ct='+parseInt(new Date().getTime()/1000)+';expires='+(new Date(new Date().getTime()+28800*1000)).toGMTString()+';path=/;domain=tianya.cn';
document.cookie='sso=r=1975164433&sid=D714B1EDA76BB89465410F5D51C8320B&wsid=7A3EE0B833B0E3C08C39AE4FB246CFC9;expires='+(new Date(new Date().getTime()+28800*1000)).toGMTString()+';path=/;domain=tianya.cn';
document.cookie='right=web4=n&portal=n;expires='+(new Date(new Date().getTime()+2592000*1000)).toGMTString()+';path=/;domain=tianya.cn';
document.cookie='temp4=rm=;expires='+(new Date(new Date().getTime()+2592000*1000)).toGMTString()+';path=/;domain=tianya.cn';
</script> <script type="text/javascript" src="http://passport.tianyaclub.com/domain.jsp?cookieTime=1295507094&portalValue=&rightCookie=false&rmCookieCode=&isActivatedUser=&idWriter=47317780&writer=imbigsnake1&intKey=685683557&chvSysGradeList=&sysGrade=&domain=tianyaclub.com&flag=660b3f51149f6033665971af804ee8d9&rmCode=false"></script>
<script type="text/javascript" src="http://passport.hainan.net/domain.jsp?cookieTime=1295507094&portalValue=&rightCookie=false&rmCookieCode=&isActivatedUser=&idWriter=47317780&writer=imbigsnake1&intKey=685683557&chvSysGradeList=&sysGrade=&domain=hainan.net&flag=660b3f51149f6033665971af804ee8d9&rmCode=false"></script>
<script type="text/javascript" src="http://passport.hiholiday.com/domain.jsp?cookieTime=1295507094&portalValue=&rightCookie=false&rmCookieCode=&isActivatedUser=&idWriter=47317780&writer=imbigsnake1&intKey=685683557&chvSysGradeList=&sysGrade=&domain=hiholiday.com&flag=660b3f51149f6033665971af804ee8d9&rmCode=false"></script>
</head><body>
<!--
<form name="buffer" action="http://my.tianya.cn/" method="post">
-->
<script >
location.href="http://my.tianya.cn/";
//document.buffer.submit();
//location.href="http://my.tianya.cn/";
var url="http://my.tianya.cn/";
function jump(url){
var e = document.createElement("a");
e.href = url;
document.body.appendChild(e);
e.click();
}
</script>
<!-- </form>-->
</body></html>--------------------------------------------------
登录的URL是:http://passport.tianya.cn/login.jsp?fowardURL=http%3A%2F%2Fmy.tianya.cn%2F&vwriter=用户名&vpassword=密码
---------------------------------------------------
HTTPrequest的C#代码应该没有问题,因为我登录其他网站都可以取到cookie,用这个cookieContoner都可以访问其他页面的资源。
------------------------------------------------------
我还试过这个:用webbrowser控件访问http://passport.tianya.cn/login.jsp?fowardURL=http%3A%2F%2Fmy.tianya.cn%2F&vwriter=用户名&vpassword=密码,可以登录,然后用代码去取WebBrower的COOKIE string,可以取到,然后新建一个HTTP request(用取到的COOKIE string) 去访问网址的话还是显示未登录.
其实我觉得应该用同一个cookieContiner取访问下个网页,但是webBrowser的控件取不到cookiecontiner,只能取到cookie.
------------------------------------------------------此问题困扰好几天了,请各位大大帮忙看看!如果解决我再加200分!
我试过用webBrowser控件了,可以取到cookie,但是用这个cookie string去访问下个网址还是显示未登录