虽然我可以掌握.Net框架和Windows应用程序的概念,但我想创建一个应用程序,让我模拟网站点击并从该页面获取数据/响应时间.我没有任何网络经验,因为我只是一个大三学生,有人可以向我(英语!!)解释基本概念或示例,可以帮助我与网站沟通的不同方式和类别吗?
你想让我做什么?
发送请求并获取字符串中的响应,以便您可以处理?
HttpWebRequest和HttpWebResponse将起作用
如果您需要通过TCP/IP,FTP或HTTP以外的方式连接,则需要使用更通用的方法
WebRequest和WebResponse
上面的所有4种方法都在System.Net命名空间中
如果您想在Web端构建可以使用的服务,那么今天和在.NET中请选择并使用WCF(RESTfull样式).
希望它能帮助你找到自己的方式:)
作为使用HttpWebRequest和HttpWebResponse的示例,也许一些代码可以帮助您更好地理解.
case:发送对URL的响应并获得响应,就像点击URL并获取点击后将存在的所有HTML代码:
private void btnSendRequest_Click(object sender, EventArgs e) { textBox1.Text = ""; try { String queryString = "user=myUser&pwd=myPassword&tel=+123456798&msg=My message"; byte[] requestByte = Encoding.Default.GetBytes(queryString); // build our request WebRequest webRequest = WebRequest.Create("http://www.sendFreeSMS.com/"); webRequest.Method = "POST"; webRequest.ContentType = "application/xml"; webRequest.ContentLength = requestByte.Length; // create our stram to send Stream webDataStream = webRequest.GetRequestStream(); webDataStream.Write(requestByte, 0, requestByte.Length); // get the response from our stream WebResponse webResponse = webRequest.GetResponse(); webDataStream = webResponse.GetResponseStream(); // convert the result into a String StreamReader webResponseSReader = new StreamReader(webDataStream); String responseFromServer = webResponseSReader.ReadToEnd().Replace("\n", "").Replace("\t", ""); // close everything webResponseSReader.Close(); webResponse.Close(); webDataStream.Close(); // You now have the HTML in the responseFromServer variable, use it :) textBox1.Text = responseFromServer; } catch (Exception ex) { textBox1.Text = ex.Message; } }
代码不起作用,因为URL是虚构的,但你明白了.:)
您可以使用.NET Framework 的System.Net.WebClient类.请参阅此处的MSDN文档.
简单的例子:
using System; using System.Net; using System.IO; public class Test { public static void Main (string[] args) { if (args == null || args.Length == 0) { throw new ApplicationException ("Specify the URI of the resource to retrieve."); } WebClient client = new WebClient (); // Add a user agent header in case the // requested URI contains a query. client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); Stream data = client.OpenRead (args[0]); StreamReader reader = new StreamReader (data); string s = reader.ReadToEnd (); Console.WriteLine (s); data.Close (); reader.Close (); } }
WebClient还有其他有用的方法,允许开发人员从指定的URI 下载和保存资源.
DownloadFile()
例如,该方法将资源下载并保存到本地文件.该UploadFile()
方法将资源上载并保存到指定的URI.
更新:
WebClient比WebRequest更易于使用.通常,您可以坚持使用WebClient,除非您需要以高级方式操作请求/响应.请参阅此文章,其中使用了两者:http://odetocode.com/Articles/162.aspx