2011-12-16 271 views
10

我需要將數據發佈到網站。因此,我在C#.net中創建了一個小應用程序,在該應用程序中打開該網站,並使用數據庫中的值填寫所有控件(單選按鈕,文本框,複選框等)。我還在SUBMIT按鈕上有一個點擊事件。然後,該應用程序等待10-15秒,然後將網頁的響應複製到我的數據庫。如何將數據發佈到網站

正如你所看到的,這真是一個繁忙的過程。如果有數千條記錄需要上傳,這個應用程序需要更長的時間(因爲它等待響應時間爲15秒)。

是否有其他方式發佈數據?我正在尋找諸如將所有字段連接起來並像上傳數據流一樣上傳的內容。如果網站是https而不是http,這將如何工作?

回答

11

您可以使用HttpWebRequest來完成此操作,並且您可以將要發佈的所有值連接到請求的單個字符串中。它可能看起來像這樣:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.yoursite.com"); 
request.Method = "POST"; 

formContent = "FormValue1=" + someValue + 
    "&FormValue2=" + someValue2 + 
    "&FormValue=" + someValue2; 

byte[] byteArray = Encoding.UTF8.GetBytes(formContent); 
request.ContentType = "application/x-www-form-urlencoded"; 
request.ContentLength = byteArray.Length; 
Stream dataStream = request.GetRequestStream(); 
dataStream.Write(byteArray, 0, byteArray.Length); 
dataStream.Close(); 
WebResponse response = request.GetResponse(); 
dataStream = response.GetResponseStream(); 
StreamReader reader = new StreamReader(dataStream); 
string responseFromServer = HttpUtility.UrlDecode(reader.ReadToEnd()); 
//You may need HttpUtility.HtmlDecode depending on the response 

reader.Close(); 
dataStream.Close(); 
response.Close(); 

此方法應該適用於http和https。

+0

我差點忘了告訴你,我需要訪問的鏈接需要使用用戶名和密碼登錄。我如何將這些代碼合併到這個代碼中? – McDee

+0

這是我現在正在使用瀏覽器正在做的事情。 第1頁:輸入登錄信息。新聞提交 第2頁:有2個框架。在頂部框架中,我輸入電子郵件地址並單擊加載記錄。這填充底部框架2中的所有信息。 – McDee

+0

我需要幫助,我還希望將我的數據(如firstname)傳輸到http://eservice.dohms.gov.ae/pservices/CreatePID0.aspx給定的網站。是可能的? – Bhupendra

1

是的,有一個WebClient類。看看documentation。有一些有用的方法來進行GET和POST請求。

相關問題