2017-01-02 34 views
1

說我有一個網頁,輸入提示,然後搜索用戶的用戶名和密碼的數據庫,然後解密密碼,並檢查輸入的密碼是一樣的用戶的密碼在數據庫中。如果我想將登錄切換到C#winforms應用程序,該怎麼辦?我如何才能與用戶名和輸入的密碼是HTTP請求,然後有網站接受用戶名/密碼字符串和搜索數據庫對於那些辦法我前面說的一樣,然後發送一個真布爾:用戶輸入正確的信息或false:用戶輸入了錯誤的信息。我怎麼能這樣做?如何使一個HTTP請求,並獲得在C#中的響應

+0

爲什麼'php'標籤在這裏?你應該打電話給哪個API? –

+0

所以你想從Windows窗體調用該網站? – CodingYoshi

+1

這裏嘗試http://stackoverflow.com/questions/4088625/net-simplest-way-to-send-post-with-data-and-read-response看 – Beginner

回答

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的使用本網站的URL

  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

相關問題