C# 与ASP网站通信

C# 与ASP网站通信,c#,asp.net,httpwebrequest,C#,Asp.net,Httpwebrequest,我知道有一个网站,其中包含一个学术考试结果的开放数据库。 我是C#方面的专家,但对web开发还是新手 通常,使用web浏览器,我们可以输入和滚动编号,然后服务器返回结果。例如,使用我的卷号:3912125 我需要做的是,使用一个C#应用程序来传递这个roll空值,并获取我的结果。(任何字符串除外,我将从该字符串中解析出结果。) 如何发送查询?当我不知道可能的查询字符串列表时 我尝试了以下代码: string queryString = "RollNo=3912125"; HttpWebRequ

我知道有一个网站,其中包含一个学术考试结果的开放数据库。

我是C#方面的专家,但对web开发还是新手

通常,使用web浏览器,我们可以输入和滚动编号,然后服务器返回结果。例如,使用我的卷号:3912125

我需要做的是,使用一个C#应用程序来传递这个roll空值,并获取我的结果。(任何字符串除外,我将从该字符串中解析出结果。)

如何发送查询?当我不知道可能的查询字符串列表时

我尝试了以下代码:

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();

您必须将查询字符串附加到url,如下所示:

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

你应该看看我回答问题时的代码。它很好地演示了如何执行POST请求。只要知道您的帖子中的查询格式字符串可以使用什么,只需在页面内容中查找适当的输入元素即可。看起来你所拥有的(罗尔诺)是正确的。但是,您可能还需要将submit按钮值添加到您的请求中,这取决于服务器的行为,这会给您类似的信息
RollNo=3912125&submit=submit

您已经完成了大部分工作。您的查询字符串应该类似于
RollNo=3912125&Submit=+Search+
。当您调用
WebRequest.Create
时,Url实际上应该是
http://nts.org.pk/NTSWeb/PPL_30Sep2012_Result/result.asp

剩下的代码应该可以工作,尽管@JamieSee推荐给您的答案对正确使用
块在
中包装东西有一些很好的建议