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