如何在C#

时间:2017-01-02 05:36:04

标签: c# http post

假设我有一个提示输入的网页,然后在数据库中搜索用户的用户名和密码,然后解密密码并检查输入的密码是否与用户的密码相同数据库。如果我想将登录切换到C#winforms应用程序怎么办?如何使用用户名和输入的密码制作该http请求,然后让网站接受用户名/密码字符串并按照我之前说的相同方式搜索数据库,然后发送一个真实的bool:用户输入正确的信息或false:用户输入的信息不正确。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

为此,您首先需要知道服务器如何接受最有可能通过post方法的请求,因为您必须输入用户名和密码,然后您必须获得输入可以获得的字符串用一个 一些浏览器扩展程序,如Live Http Headers。 它应该看起来像这样

http://yourwebsite/extension

POST /extension HTTP/1.1
Host: yourwebsite
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Length: 85
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive
HereShouldBeThePoststring

然后,您将使用网站网址

创建一个httpwebrequest

            using System.Net;
            string postUrl = "YourWebsiteUrlWithYourExtension";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl);

然后你会发布你的数据

  string postString = "ThePostStringYouObtainedUsingLiveHttpHeaders";
            request.Method = "POST";
            byte[] Content = Encoding.ASCII.GetBytes(postString);
            request.ContentLength = Content.Length;
            using (Stream stream = request.GetRequestStream())
            {
                stream.W

然后你会得到响应字符串

 string responsestring = null;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            using (StreamReader reader = new StreamReader(response.GetResponseStream()))
            {
                responsestring = reader.ReadToEnd();
            }

然后你会解析你的字符串以获得你需要的数据。 一个很好的解析库是Html Agility Pack