2014-01-30 60 views
0

我想以編程方式將數據發送到網站,然後以編程方式單擊提交按鈕。這是HTML代碼我試圖填補:它不使用webrequest發送文本到網站

<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代碼,而不發送本文。我怎樣才能發送這個文本?謝謝你的幫助!

+0

有你也有嘗試設置textarea的內容的任何代碼?這不[msdn頁面](http://msdn.microsoft.com/en-us/library/debx8sh9%28v=vs.110%29.aspx)解釋你應該做什麼? –

+0

其實我不知道如何點擊提交buton。 request.Method =「POST」;足夠 ? –

+0

你試過頁面上的例子嗎? –

回答

0

我無法測試,如果這個工程,但是從我的理解msdn是,下面的代碼將在您的POSTDATA轉換爲bytedata並提交到Web服務器:

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(); 

這事後下面的代碼可用於讀取來自Web服務器的新的響應:

// 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(); 
+0

例如,如果我想登錄Facebook它留在登錄頁面,因爲我無法點擊提交。 –

+0

我的猜測是你必須遵循http protcol的規則,就像這個[page](http://www.jmarshall.com/easy/http/#postmethod)所解釋的那樣。如果你試圖在你的postData中設置'home = Cosby&favorite + flavor = flies',會發生什麼? –