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