私はHttpWebRequestまたはWebClientがURLから文字列を取得するのにかかる時間を短縮しようとしています.C#を使用すると、文字列を取得するのに約2000msかかります。WebリクエストC#、Java
Javaを使用すると、約300msで文字列を取得できます。 (私はjavaに新しいです、下のコードを参照してください)
私は、request.Proxy = null
とSystem.Net.ServicePointManager.Expect100Continue = false
を明確に違いなく設定しようとしました。
以下のC#コードとJavaコードが同等かどうかわかりませんが、可能であればC#を使用してデータを取得したいと考えています。
のJava:
try {
URL url = new URL("SomeURL");
InputStream is = url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null)
br.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
}
のC#:
using (WebClient nn = new WebClient()) {
nn.Proxy = null;
string SContent = await nn.DownloadStringTaskAsync(url);
return SContent;
}
か:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(url));
request.Method = "GET";
// Send the request to the server and wait for the response:
using (WebResponse response = await request.GetResponseAsync()) {
using (Stream stream = response.GetResponseStream()) {
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
string SContent = reader.ReadToEnd();
return SContent;
}
}
'DownloadString'は同じ時間を使いますか? – CodingYoshi
あなたもHttpWebRequestコードを投稿することができます –
@ CodingYoshi、はいDownloadStringはダウンロード中にほぼ同じ時間ですがブロックします – YarH