2012-10-09 2 views
0

나는 학업 테스트 결과의 공개 데이터베이스가있는 웹 사이트를 알고 있습니다. http://nts.org.pk/NTSWeb/PPL_30Sep2012_Result/search.aspASP 웹 사이트와의 통신

저는 웹 개발 전문가 인 C#이지만 전문가입니다.

일반적으로 웹 브라우저를 사용하여 번호를 입력하고 서버가 결과를 되돌려 보낼 수 있습니다. E.G. 내 롤 번호 사용 : 3912125

내가해야 할 일은 C# 응용 프로그램을 사용하여이 롤 넘버를 전달하고 내 결과를 얻는 것입니다. (임의의 문자열은 제외되고 문자열에서 결과를 파싱합니다.)

어떻게 쿼리를 보내나요? 가능한 쿼리 문자열 목록을 모르는 경우 당신은이 같은 URL에 쿼리 문자열을 추가해야

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으로 전화 할 때 URL은 실제로 http://nts.org.pk/NTSWeb/PPL_30Sep2012_Result/result.asp이어야합니다.

@ ZamieSee에게 권장되는 답변은 using 블록을 올바르게 래핑하는 것에 대한 좋은 조언이 있지만 나머지 코드는 작동해야합니다.