用c#的winform实现登录功能,要求用到http和post,请求一个服务器,并能判断成功登录就

用c#的winform实现登录功能,要求用到http和post,请求一个服务器,并能判断成功登录就行... 用c#的winform实现登录功能,要求用到http和post,请求一个服务器,并能判断成功登录就行 展开
 我来答
阳光的雷咩咩
推荐于2017-12-16 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7657万
展开全部

下面这个是我自己写的,可以正确登录和运行我自己的页面。里面的参数是用Filddler(自己下载来研究一下)探查到的。

        static void GetWebWithCookie()
        {
            //登录页面地址
     含纳       string url = "http://马赛克.com/";

            HttpWebRequest requestPost = WebRequest.Create(url) as HttpWebRequest;
            requestPost.CookieContainer = new CookieContainer();
            requestPost.Method = "POST";
            //下面有些参数用不用都可以,根据自己的来
            //requestPost.KeepAlive = true;
            //requestPost.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36";
            requestPost.ContentType = "application/x-www-form-urlencoded";
           侍余 //探测到的字符串,用户名和密码在里面,自己拼凑
            string postString =
       "uid=马赛克&password=马赛克&rememberInput=remember&redirect=&redirectTime=5&target=&smagentname=&smquerydata=&smauthreason=&postpreservationdata=";

      谈谈没      byte[] postData = Encoding.ASCII.GetBytes(postString);
            requestPost.ContentLength = postData.Length;

            Stream postStream = requestPost.GetRequestStream();
            postStream.Write(postData, 0, postData.Length);
            postStream.Close();


            HttpWebResponse responsePost = requestPost.GetResponse() as HttpWebResponse;

            //使用登录后得到的cookie
            requestPost.CookieContainer.Add(responsePost.Cookies);

            string url1 = "http://马赛克/MyProcessList/Approved";
            HttpWebRequest requestGet = WebRequest.Create(url1) as HttpWebRequest;
            requestGet.CookieContainer = requestPost.CookieContainer;
            HttpWebResponse responseGet = requestGet.GetResponse() as HttpWebResponse;

            Stream responseGetStream = responseGet.GetResponseStream();
            StreamReader readerGet = new StreamReader(responseGetStream, Encoding.UTF8);
            string srcString1 = readerGet.ReadToEnd();
            //要提取什么自己写正则
            foreach (string s in Extract(srcString1, @"\d{5} - (.+?)<"))
            {
                Console.WriteLine(s);
            }
            Console.WriteLine("------");
        }



        static string GetContent(string url)
        {
            WebClient cl = new WebClient();
            return cl.DownloadString(url);
        }

        static string[] Extract(string all, string reg)
        {
            return Regex.Matches(all, reg).OfType<Match>()
                .Select(x => x.Groups[1].Value).ToArray();

        }
HuhuDollar
2016-01-12 · 超过17用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:21.7万
展开全部
web服务器,form客户端,通过http协议通信,其实并不难
追问
不要数据库,服务器已经做好,只要客户端,客户端通过http的post发送帐号,密码,服务器返回ok,客户端判断一下就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d8d14db
2016-01-12 · TA获得超过3.8万个赞
知道大有可为答主
回答量:3.2万
采纳率:81%
帮助的人:6284万
展开全部
更多追问追答
追问
我才学习c#不到两天 ,目前不要数据库,服务器已经做好,只要客户端,客户端通过http的post发送帐号,密码,服务器判断对的话返回ok,客户端判断一下就行了
追答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式