Пакет HTML Agility Pack используется для анализа HTML - его нельзя использовать для отправки форм. Ваша первая строка кода изменяет проанализированные узлы в памяти. Вторая строка не отправляет страницу на сервер - она снова загружает DOM, но использует метод POST вместо GET по умолчанию.
Не похоже, что вам нужно вообще анализировать страницу, поскольку вы уже знаете имя элемента управления. Используйте класс HttpWebRequest
для отправки запроса на сервер со строкой email=acb#example.com
в запросе.
Вот пример, который я написал, когда мне нужно что-то подобное:
/// <summary>
/// Append a url parameter to a string builder, url-encodes the value
/// </summary>
/// <param name="sb"></param>
/// <param name="name"></param>
/// <param name="value"></param>
protected void AppendParameter(StringBuilder sb, string name, string value)
{
string encodedValue = HttpUtility.UrlEncode(value);
sb.AppendFormat("{0}={1}&", name, encodedValue);
}
private void SendDataToService()
{
StringBuilder sb = new StringBuilder();
AppendParameter(sb, "email", "hello@example.com");
byte[] byteArray = Encoding.UTF8.GetBytes(sb.ToString());
string url = "http://example.com/"; //or: check where the form goes
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
//request.Credentials = CredentialCache.DefaultNetworkCredentials; // ??
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(byteArray, 0, byteArray.Length);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
// do something with response
}