C# GetRequestStream在数组中停止
我有一个json字符串列表,我正在尝试循环并发布到Web服务。它很好地循环了前两次,然后在第三次迭代时停止(这发生在第14行)。没有错误或任何事情,它似乎停止了。有什么想法吗C# GetRequestStream在数组中停止,c#,web-services,post,get-request,C#,Web Services,Post,Get Request,我有一个json字符串列表,我正在尝试循环并发布到Web服务。它很好地循环了前两次,然后在第三次迭代时停止(这发生在第14行)。没有错误或任何事情,它似乎停止了。有什么想法吗 private static void CacheGetDataUrl(Guid sessionGuid) { var tokens = Driver.GetDataPostValues(); foreach (var token in tokens) {
private static void CacheGetDataUrl(Guid sessionGuid)
{
var tokens = Driver.GetDataPostValues();
foreach (var token in tokens)
{
try
{
var buffer = Encoding.UTF8.GetBytes(token.Replace("session_identifier", sessionGuid.ToString()));
var request = (HttpWebRequest)WebRequest.Create(GetDataUrl);
request.Timeout = 1000000;
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
request.ContentLength = buffer.Length;
using (var postData = request.GetRequestStream())
{
postData.Write(buffer, 0, buffer.Length);
postData.Close();
}
Console.WriteLine("Response requested for URL {0}", GetDataUrl);
Log.Info(String.Format("Response requested for URL {0} using parameters \r\n{1}", GetDataUrl, token));
}
catch (Exception)
{
Console.WriteLine("Error occurred requesting response for URL {0} using parameters \r\n{1}", GetDataUrl, token);
Log.Error(String.Format("Error occurred requesting response for URL {0} using parameters \r\n{1}", GetDataUrl, token));
}
}
}
用一些新属性修改方法,并在收到请求后中止请求,似乎解决了问题
private static void CacheGetDataUrl(Guid sessionGuid)
{
var tokens = Driver.GetDataPostValues();
foreach (var token in tokens)
{
try
{
var buffer = Encoding.UTF8.GetBytes(token.Replace("session_identifier", sessionGuid.ToString()));
var request = (HttpWebRequest)WebRequest.Create(GetDataUrl);
request.KeepAlive = false;
request.Timeout = System.Threading.Timeout.Infinite;
request.ProtocolVersion = HttpVersion.Version10;
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
request.ContentLength = buffer.Length;
request.ServicePoint.ConnectionLimit = 250;
using (var postData = request.GetRequestStream())
{
postData.Write(buffer, 0, buffer.Length);
postData.Close();
}
request.Abort();
Console.WriteLine("Response requested for URL {0}", GetDataUrl);
Log.Info(String.Format("Response requested for URL {0} using parameters \r\n{1}", GetDataUrl, token));
}
catch (Exception)
{
Console.WriteLine("Error occurred requesting response for URL {0} using parameters \r\n{1}", GetDataUrl, token);
Log.Error(String.Format("Error occurred requesting response for URL {0} using parameters \r\n{1}", GetDataUrl, token));
}
}
}