虽然我可以理解.Net框架和Windows应用程序的概念,但我想创建一个应用程序,它将涉及我模拟网站点击并从该页面获取数据/响应时间。我还没有任何网络方面的经验,但我只是一个初中生,有人能向我解释基本概念或示例,可以帮助我与网站沟通的不同方式和类别?通过C#应用程序与Web进行通信?
2
A
回答
7
你想要做什么?
发送请求并获取字符串中的响应,以便处理?
HttpWebRequest和HttpWebResponse将工作
如果需要通过比HTTP,那么你需要使用一个更通用的方法
所有TCP/IP,FTP或其他连接上面的4个方法在System.Net命名空间中
如果您想在Web端构建一个可以使用的服务,那么在今天和.NET中请选择并使用WCF (RESTfull style)。
希望它可以帮助您使用HttpWebRequest和HttpWebResponse找到你的方式:)
为例,也许某些代码将帮助您更好地了解。
情况:发送到一个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是虚构的,但你明白了。 :)
5
您可以使用.NET Framework的System.Net.WebClient类。请参阅MSDN documentation here。
简单的例子:
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();
}
}
有Web客户端的其他有用的方法,它允许开发者下载,并从指定的URI节省资源。
例如,DownloadFile()
方法将下载资源并保存到本地文件。 UploadFile()
方法将资源上载并保存到指定的URI。
UPDATE:
WebClient的是比简单的WebRequest使用。通常情况下,您可以坚持使用WebClient,除非您需要以高级方式处理请求/响应。看到这篇文章,其中都使用:http://odetocode.com/Articles/162.aspx
相关问题
- 1. 通过套接字与Windows应用程序进行Web应用程序通信
- 2. 通过串行端口进行通信的Web应用程序
- 3. 通过ASP.NET与Web进行通信?
- 4. 通过USB与Android应用程序进行通信
- 5. 如何通过Web服务将Android应用程序与MySQL DB进行通信?
- 6. 如何通过Unix套接字与Sinatra Web应用程序进行通信?
- 7. 通过Wifi将Android应用程序与PC应用程序进行通信
- 8. ios应用程序与C#程序进行通信
- 9. 通过C程序进行Web认证
- 10. 如何从.Net Web应用程序与Outlook进行通信
- 11. 通过RPC从Java应用程序与Windows进程通信
- 12. Metro应用程序如何通过串行端口进行通信而不是通过USB进行通信?
- 13. 用heroku应用程序通过socket.io进行通信
- 14. 获取网页与C++应用程序进行通信
- 15. 与MySql进行c#.net应用程序通信的问题
- 16. 是否可以通过web2py应用程序中的web服务进行通信?
- 17. arduino和rails应用程序如何通过wifi进行通信?
- 18. 通过云进行应用程序间通信?
- 19. oob silverlight应用程序如何通过窗口进行通信
- 20. 通过win消息在应用程序之间进行通信
- 21. 通过网络在应用程序之间进行通信
- 22. Mac到iPhone应用程序通过WiFi进行通信
- 23. 使C#web应用程序通过命名管道与Windows窗体进行通信?
- 24. 通过C/C++进行RDP通信
- 25. 通过C#进行串行通信
- 26. 通过命令行与应用程序通信
- 27. C++应用程序和web应用程序之间的通信
- 28. 与C应用程序的Http通信
- 29. 桌面应用程序如何与Web应用程序通信?
- 30. Mac应用程序与safari中的web应用程序通信
将WebClient用于响应和请求方法与WebRequest和WebResponse的优点是什么? – balexandre 2009-01-16 09:39:44
例如DownloadFile和UploadFile等简化一些常见任务的方法。 – splattne 2009-01-16 09:42:20