我正在使用這段代碼來執行一個簡單的REST請求。 (代碼主要來自這個q:How to post JSON to the server?)。爲什麼這個HttpWebRequest在C#中速度很慢
爲什麼這麼慢?我使用VS 2013,首次嘗試約需15秒,然後約4秒。在後續的嘗試中,但用另一種語言(德爾福),我可以發出http請求,並持續大約1秒。
var request = (HttpWebRequest)WebRequest.Create("http://jsonplaceholder.typicode.com/posts");
request.ContentType = "application/json";
request.Method = "POST";
request.ServicePoint.Expect100Continue = false;
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(new
{
title = "foo",
body = "bar",
userId = "1"
});
streamWriter.Write(json);
}
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
textBox1.Text = result;
}
P.S.你可以爲自己測試這個代碼,它只是使用上面url中的互聯網測試REST服務器。
第一次嘗試是什麼意思?首先嚐試重新啓動後?首先嚐試當你的過程運行?或者是其他東西? –
您是否每次發佈完全相同的東西?通常API的大多數延遲都在等待其他服務器,所以你自己的代碼幾乎沒有影響 – kyrenia
@SriramSakthivel:是的,很好的問題:)。這意味着我離開電腦一段時間後的第一次嘗試。我沒有完全測量。也許幾分鐘。如果我在第一次嘗試後立即進行第二次嘗試,則需要大約4秒。所以這裏有兩個問題: 1)爲什麼在第一次嘗試和第二次嘗試之間存在這樣的差異,以及 2)與其他需要1秒的環境相比,爲什麼這麼慢(即4秒)。 – RaelB