今天公司也没什么事,又要开始学习了。其实我写这篇文章,说不定技术是很低级的,而且很多东东也是学习人家的,不过,就当做事我学习的见证。毕竟刚一出来的学生,还不懂得那么多,让大家见证我的成长历程了。
好了,废话不多说了,尽管这也是废话。
WebClient类,在C#和Delphi中都存在,可以实现post数据提交到服务端,就是模拟你手工输入到表单,然后登陆。这里我比较关心的问题是,java自带的没有这么好的类,不过不用悲观,原来common是下有个httpClient类,可以借用这个类来实现类似的功能。
首先来进行一步步解析吧:
1.找个http/https抓包工具。我这里使用了HttpWatch。先打开www.126.com这个登录页面,你可以先用一个正确的账号登录,然后通过HttpWatch来查看一些信息:如:
我们可以提取,post的地址和请求参数的格式。这里分别为:
POST地址:
请求参数格式:
下一步使用WebClient类吧:
namespace MySpace { using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; public class TestLogin { public static void Main(string[] args) { string postUrl = @" @"http://reg.163.com/logins.jsp?type=1&product=mail126&url=http://entry.mail.126.com/cgi/ntesdoor?hid%3D10010102%26lightweight%3D1%26verifycookie%3D1%26language%3D0%26style%3D-1";"; string postVal = @"";//自己写吧 byte[] postData = System.Text.Encoding.ASCII.GetBytes(postVal); byte[] returnVal = _client.UploadData(url, postData); Console.WriteLine("Return:" + System.Text.Encoding.UTF8.GetString(returnVal)); Console.ReadLine(); } } }
结果:
下次讲 java的实现,88