MaximDoshi: в принципе это нормально что он банит, просто запрос не так сформирован, нужно сформировать его так как это бы сделал браузер:
Ключ Значение
Запрос GET /search?sclient=psy-ab&newwindow=1&safe=off&site=&source=hp&q=asdasd&oq=asdasd&gs_l=&pbx=1&bav=on.2,or.r_cp.&bvm=bv.93564037,d.bGQ&biw=1714&bih=944&dpr=1&pf=p&sugexp=msedr&gs_rn=64&gs_ri=psy-ab&tok=2PeaEAIHe2sWSWqbMWxP2g&cp=6&gs_id=q&xhr=t&es_nrs=true&ei=45pVVeGNMIjdywPYkoH4Bg&emsg=NCSR&noj=1
HTTP/1.1
Accept text/html, application/xhtml+xml, */*
Referer https://www.google.ru/
Accept-Language ru-RU
User-Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Accept-Encoding gzip, deflate
Host www.google.ru
DNT 1
Connection Keep-Alive
Cookie PREF=ID=0a4d5ba68169db9a:U.....
MaximDoshi: Должно сработать, вероятно там с очисткой дополнительных ресурсов проблемы. Либо вообще заменить браузер на чтото вроде:
static string getResponse(string uri)
{
StringBuilder sb = new StringBuilder();
byte[] buf = new byte[8192];
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();
int count = 0;
do
{
count = resStream.Read(buf, 0, buf.Length);
if (count != 0)
{
sb.Append(Encoding.Default.GetString(buf, 0, count));
}
}
while (count > 0);
return sb.ToString();
}
Это будет на порядок быстрее, не грузит ничего кроме текста и не гадит в памяти.
MaximDoshi: еще можно заменить webbrowser на этот www.codeproject.com/Articles/9032/Extended-web-bro... компанент, чтобы не грузить картинки и прочий шлак, потому как в текущей реализации придется ждать пока загрузится вся страница со всем шлаком на ней, хотя нужен только ее код.
MaximDoshi: специально проверил, этот код не утекает, 1600 итераций прошло память выше 40 мб не поднималась. Нужно смотреть утечки в той части кода что "за кадром"
MaximDoshi: тогда понятно, что делается с полученными данными после загрузки? в это фрагменте они просто перезатираются. Возможно проблема не в этом фрагменте кода
Sp1rtwork: на чистой Java? Я бы использовал какой ни будь подходящий фреймворк, например https://spring.io/guides/gs/rest-service/ тут в примере есть функция public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
в ней Greeting(counter.incrementAndGet(), String.format(template, name));
Это простейшая функция которая возвращает "Hello %s" где вместо %s подставляется name
вместо нее можно написать ту самую функцию авторизации.
Я бы не сказал что на java это просто сделать, пример тому показатель, такое проще было бы реализовать на каком ни будь .net или php.
если включить параноика можно еще немного изменить алгоритм, к примеру вместо отправки токена при запросе отправлять логин а сам запрос шифровать токеном, сервис же по логину может найти токен и расшифровать сообщение.
Максим Кузнецов: в целом так и есть, поэтому я и говорю пользователей у нее скорее всего не будет, интерес лишь в самом процессе ее создания, ничего похожего на Alfresco Community и не планировалось, к тому же если я правильно понял это скорее движек для базы знаний чем экспертная система.
Тимур Шемсединов: Учитывая что это "для тренировки" то можно любую предметную область в которой такая система более менее актуальна (на ваш выбор так сказать), нагрузка и конечный пользователь абстрактны, т.к. таковые у нее врядли появятся, хотя исходники и приложение будут в общем доступе и если она кому то нужна можно будет их брать
brainick: походил, большая часть загажено ботами от имени каких то фирм, остальное скорее всего сообщения тех кто мимо проходил, нет даже признаков присутствия старожил
brainick: я не говорю что они не те, всегда есть такие которые ищут программиста 1С с высшим образованием и 5 годами опыта работы с зарплатой в 15т.р., годами в общем ищат, иногда десятилетиями, как ни странно не находят. Я говорю о том что Это (Kuban.ru) вообще сайтом можно назвать с натяжкой, сомневаюсь, что такой образец Аскетичного дизайна в стеле 70х "Самый популярный", скорее я поверю, что он заброшенный давно или имеет свою "нишу" читателей, что по ссылке из избранного в него заходят.