C# 用HttpWebRequest进行最大并发数的问题 100

再窗体那边设置了1条线程来,执行下面的POST方法往某服务器提交数据,速度大概是每秒1条但是我设置了10条线程来POST数据后,速度并没有什么提升把ServicePoin... 再窗体那边设置了1条线程来,执行下面的POST方法往某服务器提交数据,速度大概是每秒1条
但是我设置了10条线程来POST数据后,速度并没有什么提升
把 ServicePointManager.DefaultConnectionLimit 改为了512也没什么改变,请问该如何解决这样的问题呢?不胜感激

//#Http.cs#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Text.RegularExpressions;

namespace QKB
{
class Http
{
public static string cookie = "";

public static string Post(string postUrl, string paramData, Encoding dataEncode)
{
string ret = string.Empty;
try
{
byte[] byteArray = dataEncode.GetBytes(paramData); //转化
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
webReq.ServicePoint.Expect100Continue = false;
webReq.KeepAlive = false;
webReq.Method = "POST";
webReq.ContentType = "application/x-www-form-urlencoded";
webReq.ContentLength = byteArray.Length;
webReq.AllowAutoRedirect = true;
webReq.Headers.Set(HttpRequestHeader.Cookie, cookie);
Stream newStream = webReq.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);//写入参数
newStream.Close();
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default);

//如果有cookie,则保存
if (response.Headers.AllKeys.Contains("Set-Cookie"))
{
cookie = response.Headers["Set-Cookie"];
Console.WriteLine("cookie : " + cookie);
}

//webReq.Abort();
ret = sr.ReadToEnd();
sr.Close();
response.Close();
newStream.Close();
}
catch{}
return ret;
}
}
}
展开
 我来答
mort_1990
2015-06-27 · 超过22用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:19.7万
展开全部
使用高配电脑,高带宽。

最后,再给你请求的网站也配个高级点的服务器,不然服务器只能接受XX个访问,你设置再多最后都是超时。
更多追问追答
追问
我这边100M的带宽,I7+8G内存。配置和带宽都不是什么问题
追答
那就是你访问的网站的问题了,网站那边配置不行,限制了请求数量的。你想多点,那么你就多开几个线程,同时跑数据。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式