using xNet; string[] Agents; Agents = new string[]{ "Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", "Mozilla/5.0 (Linux; U; Android 4.0.3; de-ch; HTC Sensation Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", "Mozilla/5.0 (Linux; U; Android 2.3; en-us) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/4.0.1 Safari/530.18", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.197 Safari/532.0", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.198 Safari/532.0", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.202.0 Safari/532.0", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.203.0 Safari/532.0", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.3 Safari/531.21.10", }; Масив с нашими юзер агентами. Код string[] Agents; Agents = new string[]{ "Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", "Mozilla/5.0 (Linux; U; Android 4.0.3; de-ch; HTC Sensation Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", "Mozilla/5.0 (Linux; U; Android 2.3; en-us) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/4.0.1 Safari/530.18", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.197 Safari/532.0", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.198 Safari/532.0", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.202.0 Safari/532.0", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.203.0 Safari/532.0", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.3 Safari/531.21.10", }; Масив с нашими юзер агентами. using (var request = new HttpRequest()) { { request.UserAgent = arrUA[new Random().Next(0, arrUA.Length)]; выбираем рандомный юзер агент для запроса request.IgnoreProtocolErrors = false; request.EnableEncodingContent = false; string str = request.Get("http://ваш сайт", null).ToString(); Это Get запрос var urlParams = new RequestParams(); urlParams["Параметр"] = "Его значение"; string str5 = request.Post("http://ваш сайт", urlParams).ToString(); Это Post запрос Далее обрабатываете свои запросы как вам нужно. } } Код using (var request = new HttpRequest()) { { request.UserAgent = arrUA[new Random().Next(0, arrUA.Length)]; выбираем рандомный юзер агент для запроса request.IgnoreProtocolErrors = false; request.EnableEncodingContent = false; string str = request.Get("http://ваш сайт", null).ToString(); Это Get запрос var urlParams = new RequestParams(); urlParams["Параметр"] = "Его значение"; string str5 = request.Post("http://ваш сайт", urlParams).ToString(); Это Post запрос Далее обрабатываете свои запросы как вам нужно. } }
а не проще использовать request.UserAgent = Http.ChromeUserAgent(); // (FirefoxUserAgent, OperaUserAgent, etc)
Я не знаю, как на самом деле работает компилятор у C#, что он умеет, но я бы отказался от такой конструкции: new Random() Код new Random() Это означает, что при каждом запросе в каждом потоке будет создаваться экземпляр класса Random, я бы создал его в основном классе: Random rnd = new Random() Код Random rnd = new Random() Далее можешь использовать его в потоках: request.UserAgent = arrUA[rnd.Next(0, arrUA.Length)]; Код request.UserAgent = arrUA[rnd.Next(0, arrUA.Length)];
Также отказываемся от массивов, используем листы. В своём проекте список юзер агентов содержался в txt файле, который подгружался при запуске программы в List<string>
Во-первых request.IgnoreProtocolErrors = false; request.EnableEncodingContent = false; Код request.IgnoreProtocolErrors = false; request.EnableEncodingContent = false; Это по дэфолту false в xnet и не нужно лишний раз мусорить в коде. Во-вторых Есть вот такой замечательный класс, который работает с любой коллекцией реализующей IEnumerable Код internal static class ListHelper { public static T PickRandom<T>(this IEnumerable<T> source) { return source.PickRandom(1).Single(); } public static IEnumerable<T> PickRandom<T>(this IEnumerable<T> source, int count) { return source.Shuffle().Take(count); } public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> source) { return source.OrderBy(x => Guid.NewGuid()); } } Код internal static class ListHelper { public static T PickRandom<T>(this IEnumerable<T> source) { return source.PickRandom(1).Single(); } public static IEnumerable<T> PickRandom<T>(this IEnumerable<T> source, int count) { return source.Shuffle().Take(count); } public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> source) { return source.OrderBy(x => Guid.NewGuid()); } } После добавления данной вещи в программу, остаётся лишь создать List с вашими юзерагентами и вызывать на нём метод PickRandom(), что будет выглядеть в коде лучше.
Мда массив с юзер агентами чето новенькое, не старлей ли научил??? D Request.UserAgent = HttpHelper.RandomIEUserAgent(); И все на каждый запрос рандомный юзер агент, можно хоть мазилу крутить, хоть оперу.