雖然我可以理解.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