九月

    怎么脑子里出现的是狮子座的八月份的前奏......本月主题处半夜凉初透女座了
    九月的开始解决了不少困惑已久的技术问题,师兄的面试理论又让我有些迷失,不管怎样,还是要坚持的,自己还是对web技术比较感兴趣。
    各公司和单位校园招聘也将在这个月拉开序幕,找工作的各位加油了,好好准备,wish everyone good luck。
    最后记录一下,首先是页面上用JavaScript实现自动登录
    function log_submit(){
    var User = document.mailForm.mail_name.value;
    var ProNo = document.mailForm.mailSelect.value;
    var mail_action = ProNo.split(";");
    if(mail_action.length > 1)
    {
    if(mail_action[1]=="suffix")
    User += "@"+mail_action[2];
    else 
    eval("document.mailForm."+mail_action[1]+".value = '"+mail_action[2]+"';");
    }
    var Passwd = document.mailForm.mail_password.value;
    var Formobj = document.mailForm;
    function checkUserPass(){
        if (User == ""){
        alert("请填写用户名");
        document.mailForm.mail_name.focus();
        return false;
        }
        else if (Passwd == ""){
        alert("请填写密码");
        document.mailForm.mail_password.focus();
        return false;
        }
        else {
        return true;
        }
    }
    if (checkUserPass()){
        document.mailForm.action = mail_action[0];
        document.mailForm.u.value = User;
        document.mailForm.user.value = User;
        document.mailForm.LoginName.value = User;
        document.mailForm.username.value = User;
        document.mailForm.UserName.value = User;
        document.mailForm.login_name.value = User;
        document.mailForm.login.value = User;
        document.mailForm.email.value = User;
        document.mailForm.psw.value = Passwd;
        document.mailForm.pass.value = Passwd;
        document.mailForm.passwd.value = Passwd;
        document.mailForm.password.value = Passwd;
        document.mailForm.Password.value = Passwd;
        document.mailForm.login_password.value = Passwd;
        document.mailForm.submit();
        document.mailForm.mail_password.value = "";
    }
    return false;
    }

    接下来是灌水的机制,hoho
   

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

首先需要提交登录表单,填写包括邮箱和密码

WebConversation browser = new WebConversation();

         WebRequest
request =
new PostMethodWebRequest("http://login.renren.com/Login.do");         

        

        try

        {

        HttpUnitOptions.setExceptionsThrownOnScriptError(false);

        HttpUnitOptions.setLoggingHttpHeaders(true);     

       

        WebResponse response = browser.getResponse(request);

        WebForm form = response.getForms()[0];

        form.setParameter("email","laixingrong@163.com");

           form.setParameter("password","");//此处需要填写真实密码

           response = form.submit();

 

关键是先在Firefox下安装插件Firebug来进行请求和响应网络包截获,同时分析目标地址和POST参数,一般POST参数除了用户需要填写的可见inputtextboxtextarea等之外,还包括隐性的hidden
input
,这些都是提交的时候需要的,而且一般都是存储了服务器返回的信息。(注意某些hidden input没有value,故此时直接设置post参数为””,否则运行时将出错)

org.w3c.dom.NamedNodeMap mp =
response.getElementsWithName(
"cc")[0].getNode().getAttributes();

           String cc = mp.getNamedItem("value").getNodeValue();

 

request = new PostMethodWebRequest("http://renren.com/gossip.do");

           request.setParameter("cc", cc)

同时还可能遇到的就是维持会话问题,如发送Cookie信息等,可以取出后进行赋值添加到请求头中。

String[] cookies = browser.getCookieNames();

           String totalCookies ="";

           for(String str:cookies)

           {

           if(!totalCookies.equals(new String("")))

           {

               totalCookies+="; ";

           }

           totalCookies+=str+"=";

           totalCookies+=browser.getCookieValue(str);          

           }

           request=new
GetMethodWebRequest("http://renren.com/profile.do?portal=homeFootprint&id=34720877");

           String headerName="Cookie";

           String headerValue=totalCookies;

           request.setHeaderField(headerName,
headerValue);

 

最后通过查看截取的包再设置需要的请求头:

          
request.setHeaderField(
"Referer", "http://renren.com/profile.do?portal=profileFootprint&id=34720877");

           request.setHeaderField("Content-Type", "application/x-www-form-urlencoded;
charset=UTF-8"
);

This entry was posted in WebTech. Bookmark the permalink.

One Response to 九月

  1. 中博网友 says:

    牛X!

发表评论

您的电子邮箱不会被公开。 标记为 * 的区域必须填写

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>