2012-10-09 72 views
0

我有一個知道一個網站,其中包含一個開放的數據庫的學術考試的結果。 http://nts.org.pk/NTSWeb/PPL_30Sep2012_Result/search.asp與ASP網站通信

我是C#的專家,但對web開發新手。

通常,使用網絡瀏覽器,我們可以輸入和滾動號碼,服務器發回結果。例如。使用我的卷數:3912125

我需要做的是,使用C#應用程序來溝通此滾動空數字並獲得我的結果的任何內容。 (任何字符串都是例外,我將解析出該字符串的結果。)

如何發送查詢?當我不知道可能的查詢字符串列表。

我試過這段代碼:

string queryString = "RollNo=3912125"; 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://nts.org.pk/NTSWeb/PPL_30Sep2012_Result/search.asp"); 
request.UseDefaultCredentials = true; 
request.ContentType = "application/x-www-form-urlencoded"; 
request.Method = "POST"; 

byte[] requestBytes = Encoding.UTF8.GetBytes(queryString); 
request.ContentLength = requestBytes.Length; 

using (var requestStream = request.GetRequestStream()) 
{ 
    requestStream.Write(requestBytes, 0, requestBytes.Length); 
    requestStream.Close(); 
} 
WebResponse response = request.GetResponse(); 
textBox1.AppendText(((HttpWebResponse)response).StatusDescription); 
Stream dataStream = response.GetResponseStream(); 
StreamReader reader = new StreamReader(dataStream); 
string responseFromServer = reader.ReadToEnd(); 

textBox1.AppendText(responseFromServer); 

reader.Close(); 
dataStream.Close(); 
response.Close(); 

回答

0

你要查詢字符串追加到這樣的網址:

string queryString = "RollNo=3912125"; 
string url = String.Format(@"http://foo/search.asp?{0}", queryString); 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
0

你應該看看代碼在我的回答C# https login and download file。它給出瞭如何執行POST請求的很好的演示。至於知道POST中查詢格式化字符串的有效用法,只需在頁面內容中查找適當的輸入元素即可。它看起來像你有(RollNo)是正確的。但是,您可能還需要將提交按鈕的值添加到您的請求中,具體取決於服務器的行爲方式,給您類似的內容。 RollNo=3912125&submit=submit

0

你是那裏的大部分。你的queryString應該看起來像RollNo=3912125&Submit=+Search+。當您撥打WebRequest.Create時,該網址實際上應該是http://nts.org.pk/NTSWeb/PPL_30Sep2012_Result/result.asp

你的代碼的其餘部分應該工作,雖然答案@JamieSee建議您在using塊正確

約包裹的東西了一些非常好的建議