我正在使用POST調用Web服務並收到2MB xml。 問題是,我需要很長時間才能使用Stream中的數據。 響應似乎是在7秒之後,但從響應流中讀取內容(其字符串)需要10秒。以毫秒爲單位HttpWebRequest在c#中的Web服務;如何從響應流中獲取FAST數據?
Talking to Web-Service: 6595
"Convert" stream to some useful data: 10772
Stopwatch s = new Stopwatch();
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(MyUri);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = Poststring.Length;
s.Start();
StreamWriter swriter = new StreamWriter(req.GetRequestStream());
swriter.Write(Poststring);
swriter.Close();
// Get the response. 7 sec
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
s.Stop();
Debug.WriteLine("Talking to Web-Service: "+s.ElapsedMilliseconds);
s.Reset();
// Get the stream containing content returned by the server.
Stream dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content. 10 sec
XmlReader xmlReader = XmlReader.Create(dataStream);
s.Start();
XDocument xdoc = XDocument.Load(xmlReader);
s.Stop();
Debug.WriteLine("Convert stream to some useful data: "+s.ElapsedMilliseconds);
輸出爲何要像10秒閱讀的內容? 在讀取內容時是否存在與Web服務的一些通信或等待數據?它只是一個簡單的文本文件(xml),大約2MB。我認爲這些2 MB在6596毫秒內被轉移。因爲當我用我的瀏覽器調用該服務時,xml內容顯示在6-7秒內。
與網絡服務交談的時間可以,但在10772毫秒內發生了什麼?
編輯:問題是stil那裏。我得到不同的答案,他們相互矛盾彼此。
這是什麼樣的服務? ASMX或WCF? –
該服務的端點配置是什麼?什麼綁定? – Amy
這就是問題所在。我不知道細節。它完成與Django的python和我發送key = value(Poststring)對。 swriter.Write(Poststring); – Gero