Это не отправка текста на сайт с помощью веб-запроса
Я хочу программно отправить данные на веб-сайт, а затем программно нажать кнопку "Отправить". Это HTML-код, который я пытаюсь заполнить:
<textarea id="rpslBox:postRpsl:rpslObject" name="rpslBox:postRpsl:rpslObject" class="ripe-input-field ui-corner-all" rows="18" style="width:500px;"></textarea>
Я использую этот код C#:
WebRequest request = WebRequest.Create("https://apps.db.ripe.net/syncupdates/simple-rpsl.html ");
// Set the Method property of the request to POST.
request.Method = "POST";
string textarea = "text";
// Create POST data and convert it to a byte array.
string postData = string.Format("rpslBox:postRpsl:rpslObject{0}", textarea);
Когда я запускаю этот код, он возвращает HTML-код страницы без отправки этого текста. Как я могу отправить этот текст? Спасибо за вашу помощь!
1 ответ
Я не могу проверить, работает ли это, но насколько я понимаю из msdn, следующий код преобразует ваши постданные в bytedata и отправит их на веб-сервер:
byte[] byteArray = Encoding.UTF8.GetBytes (postData);
// Set the ContentType property of the WebRequest.
request.ContentType = "application/x-www-form-urlencoded";
// Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length;
// Get the request stream.
Stream dataStream = request.GetRequestStream ();
// Write the data to the request stream.
dataStream.Write (byteArray, 0, byteArray.Length);
// Close the Stream object.
dataStream.Close ();
И что впоследствии следующий код может быть использован для чтения нового ответа от веб-сервера:
// Get the response.
WebResponse response = request.GetResponse ();
// Display the status.
Console.WriteLine (((HttpWebResponse)response).StatusDescription);
// Get the stream containing content returned by the server.
dataStream = response.GetResponseStream ();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader (dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd ();
// Display the content.
Console.WriteLine (responseFromServer);
// Clean up the streams.
reader.Close ();
dataStream.Close ();
response.Close ();