1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| static void asyncPost(string url1, string referrer,string data)
{
var cts = new CancellationTokenSource();
var _lock = new Object();
var po = new ParallelOptions();
po.CancellationToken = cts.Token;
po.MaxDegreeOfParallelism = System.Environment.ProcessorCount;
var listOfUrls = new List<string>() { url1, url1, url1};
try
{
ParallelLoopResult result = Parallel.ForEach(listOfUrls, po, (url) =>
{
po.CancellationToken.ThrowIfCancellationRequested();
byte[] data = Encoding.UTF8.GetBytes(data);
HttpWebRequest postlogin = (HttpWebRequest)WebRequest.Create(url1);
postlogin.AllowAutoRedirect = true;
postlogin.CookieContainer = container;
postlogin.Method = "POST";
postlogin.ContentType = "application/x-www-form-urlencoded";
postlogin.ContentLength = data.Length;
postlogin.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.30 Safari/537.36";
postlogin.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3";
postlogin.Referer = referrer;
postlogin.Headers.Add("Accept-Language: en-GB,en-US;q=0.9,en;q=0.8");
using (Stream streamLogin = postlogin.GetRequestStream())
{
streamLogin.Write(data, 0, data.Length);
}
HttpWebResponse responselogin = (HttpWebResponse)postlogin.GetResponse();
var responseString = StreamConvert(responselogin);
lock (_lock)
{
if (responseString.Length > 6)
{
responsResult = responseString;
cts.Cancel();
}
}
});
//return responsResult;
} |
Partager