HttpWebRequest在第三次尝试时超时,只有两个连接允许HTTP 1.1

时间:2013-03-03 00:21:10

标签: c# .net http httpwebrequest using

for (int i = 0; i < endurance / 10; i++) {
    log.Info("mining now : " + endurance / 10 + " - " + i);
    HttpWebRequest mineRequest = WebRequestUtil.CreateHttpWebRequest(Properties.Settings.Default.PAGE_URL + Properties.Settings.Default.MINING_URL);

    string source = SourceParser.GetSource(mineRequest); // GETTING TIMED OUT HERE
    string variable = GetHiddenVariableNumber(source);

    Mine(variable);
}

我的GetSource方法:

public static string GetSource(WebRequest request) {
    using (WebResponse response = request.GetResponse()) {
        using (Stream stream = response.GetResponseStream()) {
            using (StreamReader reader = new StreamReader(stream)) {
                return reader.ReadToEnd();
            }
        }
    }
}

LOG:

2013-03-03 02:10:56,101 [13] INFO  Bot.Game.Mining mining now : 10 - 0
2013-03-03 02:10:57,053 [13] INFO  Bot.Game.Mining mining now : 10 - 1
2013-03-03 02:10:58,155 [13] INFO  Bot.Game.Mining mining now : 10 - 2 // ends here

有什么建议吗?我读了很多关于它的常见问题,不是处理StreamWebResponse对象,而是我这样做。

1 个答案:

答案 0 :(得分:3)

我认为这可能是ServicePoint的问题。它提供HTTP连接的连接管理。

ServicePoint对象允许的默认最大并发连接数为2.因此,如果需要增加它,可以使用ServicePointManager.DefaultConnectionLimit属性。