Хотя я могу понять концепции .NET-приложений и приложений Windows, я хочу создать приложение, которое будет включать в себя моделирование кликов на сайте и получение времени отклика на эту страницу. У меня еще не было опыта работы в Интернете, поскольку я только младший, может кто-нибудь объяснить мне (по-английски!!) основные понятия или примеры, разные способы и классы, которые могут помочь мне общаться с веб-сайтом?
что вы хотите сделать?
отправить запрос и получить ответ в строке, чтобы вы могли обработать?
HttpWebRequest и HttpWebResponse будет работать
если вам нужно подключиться через TCP/IP, FTP или иначе, чем HTTP, вам нужно использовать более общий метод
Все 4 метода, описанные выше, находятся в пространстве имен System.Net
Если вы хотите создать службу на веб-стороне, которую вы можете использовать, то сегодня и в .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-адрес фиктивный, но вы получаете эту идею.:)
Вы можете использовать класс System.Net.WebClient.NET Framework. См. документация 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.
UPDATE:
WebClient проще использовать, чем WebRequest. Обычно вы можете использовать только WebClient, если вам не нужно манипулировать запросами/ответами в расширенном режиме. См. Эту статью, в которой используются оба метода: http://odetocode.com/Articles/162.aspx