Вы можете программно создать запрос Http и получить ответ:
string uri = "http://www.google.com/search";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
// encode the data to POST:
string postData = "q=searchterm&hl=en";
byte[] encodedData = new ASCIIEncoding().GetBytes(postData);
request.ContentLength = encodedData.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(encodedData, 0, encodedData.Length);
// send the request and get the response
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
// Do something with the response stream. As an example, we'll
// stream the response to the console via a 256 character buffer
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
Char[] buffer = new Char[256];
int count = reader.Read(buffer, 0, 256);
while (count > 0)
{
Console.WriteLine(new String(buffer, 0, count));
count = reader.Read(buffer, 0, 256);
}
} // reader is disposed here
} // response is disposed here
Конечно, этот код возвратит ошибку, так как Google использует GET, а не POST, для поисковых запросов.
Этот метод будет работать, если вы имеете дело с конкретными веб-страницами, поскольку URL-адреса и данные POST в основном жестко запрограммированы. Если вам нужно что-то более динамичное, вам нужно:
- Захват страницы
- Вычеркните форму
- Создание строки POST на основе полей формы
FWIW, я думаю, что-то вроде Perl или Python могло бы лучше подходить для такого рода задач.
edit: x-www-form-urlencoded