2011-12-16 11 views
10

Tôi cần đăng dữ liệu lên trang web. Vì vậy, tôi đã tạo một ứng dụng nhỏ trong C# .net nơi tôi mở trang web này và điền vào tất cả các điều khiển (nút radio, hộp văn bản, hộp kiểm vv) với các giá trị từ cơ sở dữ liệu của tôi. Tôi cũng có một sự kiện bấm vào nút SUBMIT. Ứng dụng sau đó đợi 10-15 giây và sau đó sao chép phản hồi từ trang web vào cơ sở dữ liệu của tôi.Cách đăng dữ liệu lên trang web

Như bạn có thể thấy, đây thực sự là một quá trình bận rộn. Nếu có hàng ngàn bản ghi để tải lên, ứng dụng này sẽ mất nhiều thời gian hơn (do thực tế là nó chờ 15 giây cho phản hồi).

Có cách nào khác để đăng dữ liệu không? Tôi đang tìm kiếm một cái gì đó như ghép tất cả các lĩnh vực với giá trị của nó và tải nó lên như một dòng dữ liệu. Làm thế nào điều này sẽ làm việc nếu trang web là https và không http?

Trả lời

11

Bạn có thể sử dụng HttpWebRequest để thực hiện việc này và bạn có thể nối tất cả các giá trị bạn muốn đăng vào một chuỗi duy nhất cho yêu cầu. Nó có thể trông giống như sau:

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

Phương pháp này sẽ hoạt động tốt cho http và https.

+0

Tôi gần như quên nói với bạn rằng liên kết tôi cần truy cập yêu cầu đăng nhập bằng tên người dùng và mật khẩu. Làm cách nào để kết hợp điều đó trong mã này? – McDee

+0

Đây là những gì tôi đang làm ngay bây giờ bằng cách sử dụng trình duyệt. Trang 1: Nhập thông tin đăng nhập. Nhấn Submit Trang 2: có 2 khung hình. Trong khung trên cùng, tôi nhập địa chỉ email và nhấp vào Tải Bản ghi. Điều này điền tất cả thông tin vào khung dưới cùng 2. – McDee

+0

tôi cần trợ giúp rằng tôi cũng muốn chuyển dữ liệu của mình như firstname tới http://eservice.dohms.gov.ae/pservices/CreatePID0.aspx trang web đã cho. là có thể ?? – Bhupendra

1

Vâng, có một lớp WebClient. Nhìn vào documentation. Có một số phương pháp hữu ích để thực hiện các yêu cầu GET và POST.