Không sử dụng phương thức tải của lớp XmlDataDocument trực tiếp; bạn có ít hoặc không có cách nào ảnh hưởng đến hành vi khi nói đến các yêu cầu HTTP chạy dài.
Thay vào đó, hãy sử dụng các lớp HttpWebRequest và HttpWebResponse để thực hiện công việc cho bạn, sau đó tải phản hồi tiếp theo vào tài liệu của bạn.
Ví dụ:
HttpWebRequest rq = WebRequest.Create("http://www.globalgear.com.au/productfeed.xml") as HttpWebRequest;
//60 Second Timeout
rq.Timeout = 60000;
//Also note you can set the Proxy property here if required; sometimes it is, especially if you are behind a firewall - rq.Proxy = new WebProxy("proxy_address");
HttpWebResponse response = rq.GetResponse() as HttpWebResponse;
XmlTextReader reader = new XmlTextReader(response.GetResponseStream());
XmlDocument doc = new XmlDocument();
doc.Load(reader);
Tôi đã thử nghiệm mã này trong một trường hợp ứng dụng địa phương và XmlDocument là dân cư với các dữ liệu từ URL của bạn.
Bạn cũng có thể thay thế trong XmlDataDocument cho XmlDocument trong ví dụ trên - Tôi thích sử dụng XmlDocument vì nó chưa được đánh dấu là lỗi thời.
Tôi đã bọc này trong một chức năng cho bạn:
public XmlDocument GetDataFromUrl(string url)
{
XmlDocument urlData = new XmlDocument();
HttpWebRequest rq = (HttpWebRequest)WebRequest.Create(url);
rq.Timeout = 60000;
HttpWebResponse response = rq.GetResponse() as HttpWebResponse;
using (Stream responseStream = response.GetResponseStream())
{
XmlTextReader reader = new XmlTextReader(responseStream);
urlData.Load(reader);
}
return urlData;
}
Đơn giản chỉ cần gọi sử dụng:
XmlDocument document = GetDataFromUrl("http://www.globalgear.com.au/productfeed.xml");
Xin chào, Cảm ơn bạn đã trả lời, tôi đã sử dụng giống như bạn đã đề cập ở trên, Tôi vẫn nhận được lỗi tương tự. Tôi đã đặt Thời gian chờ thành 60000. – chetan1539
Bạn có thể truy cập URL từ trình duyệt của mình và mất nhiều thời gian không? Nếu có, tăng thời gian chờ. Bạn có biết nếu bạn có một proxy? Nếu bạn có một proxy, bạn có thể cần phải thiết lập mã này. – dash
vâng tôi truy cập url nhưng không mất quá nhiều thời gian để hiển thị nội dung trên trang. – chetan1539