Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 30.06.2013, 18:42   #1
tolprog
Пользователь
 
Регистрация: 29.03.2013
Сообщений: 33
Репутация: 10
Вопрос 3 вопроса ???

1) Подскажите как можно узнать время выполнения get-запроса в программе, записать значение в переменную???

2)
Код:
 begin
idhttp1:=TIdHTTP.create(nil);
data:=tstringlist.Create;
idhttp1.Host:=cbb1.text;
idhttp1.Port:=80;
idhttp1.HandleRedirects:=true;
idhttp1.Request.UserAgent :='Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)';
Data.Add(AnsiToUtf8('user_name='+edt2.text));
data.add(AnsiToUtf8('user_password='+edt1.text));
data.Add(AnsiToUtf8('commit=Зайти'));
idhttp1.Connect;
repeat try
         text:=idhttp1.Post('/visitor/process_login',data);
         a:=true;
       except
         a:=false;
       end;
until a;
При авторизации логина с русским алфавитом никаких проблем не возникает, но при логине с английским начинается зацикливание с одной ошибкой - HTTP/1.1 501 Not Implemented. Как мне исключить эту ошибку???

3) При медленном интернете возникает так называемая "поломка" программы, когда она просто стоит без никаких действий, ничего не делает. Это может быть связано с разъединением программы с сервером(disconnected)???

Заранее всем спасибо.
tolprog вне форума   Ответить с цитированием
Старый 30.06.2013, 18:47   #2
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,815
Репутация: 6850
По умолчанию

Цитата:
как можно узнать время выполнения get-запроса в программе, записать значение в переменную???
Код:
var dt:TDateTime;
...
dt:=now;
...get();
...:=now-dt
Цитата:
Это может быть связано с разъединением программы с сервером(disconnected)???
Это можно сказать только зная как она написана. Разьединение обычно генерирует исключение.
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 30.06.2013, 20:04   #3
tolprog
Пользователь
 
Регистрация: 29.03.2013
Сообщений: 33
Репутация: 10
По умолчанию

А как обращаться к переменной типа tdatetime? Мне нужно к примеру сравнить результат с 4секунды.
Цитата:
.Это можно сказать только зная как она написана. Разьединение обычно генерирует исключение.
В моей программе каждый get-запрос обрамлен try-except. Я так понял, что разъединение невозможно в данном случаи? Тогда в чем проблема может быть?
tolprog вне форума   Ответить с цитированием
Старый 30.06.2013, 20:13   #4
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,815
Репутация: 6850
По умолчанию

Цитата:
к примеру сравнить результат с 4секунды.
Код:
uses dateutils...
...
if SecondsBetween(now,dat)>4 then Больше 4 сек
Цитата:
Я так понял, что разъединение невозможно в данном случаи?
Че это? Сервак тебе отказал - получай разьединение )
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 30.06.2013, 21:52   #5
tolprog
Пользователь
 
Регистрация: 29.03.2013
Сообщений: 33
Репутация: 10
По умолчанию

Насчет первого немного не понял, в самоучителе попробую разобраться с типом датавремя. С третим вопросом буду экспериментировать. Спасибо за помощ Stilet. Еще бы разобраться с вторым вопросом...
tolprog вне форума   Ответить с цитированием
Старый 30.06.2013, 22:17   #6
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,815
Репутация: 6850
По умолчанию

Цитата:
Насчет первого немного не понял
SecondsBetween это функция, которая возвращает кол-во секунд между датами.
Now() функция возвращающая текущую дату-вермя.
Насчет
Цитата:
при логине с английским начинается зацикливание с одной ошибкой - HTTP/1.1 501 Not Implemented.
http://support.microsoft.com/KB/811262
http://www.checkupdown.com/status/E501.html
Цитата:
The Web server (running the Web site) does not understand or does not support the HTTP method
И
Цитата:
501 Not Implemented — сервер не поддерживает возможностей, необходимых для обработки запроса. Типичный ответ для случаев, когда сервер не понимает указанный в запросе метод. Если же метод серверу известен, но он не применим к данному ресурсу, то нужно вернуть ответ 405. Появился в HTTP/1.0.
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 01.07.2013, 09:46   #7
Кольша
Далеко не
Профессионал
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Адрес: Россия, Новосибирск
Сообщений: 1,512
Репутация: 365

skype: K0lsha
По умолчанию

Цитата:
Код:
text:=idhttp1.Post('/visitor/process_login',data);
Щито??
Что это /visitor/process_login ??Надо указывать полный адрес т.е. например http://you-server.com/visitor/process_login .
__________________
admin[@]ksware.ru
Кольша вне форума   Ответить с цитированием
Старый 01.07.2013, 11:56   #8
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,815
Репутация: 6850
По умолчанию

Цитата:
Надо указывать полный адрес
Обрати внимание на
Цитата:
idhttp1.Host:=cbb1.text;
Я вообще-то придерживаюсь твоего мнения, но судя по всему и такое имеет быть место
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 01.07.2013, 12:25   #9
tolprog
Пользователь
 
Регистрация: 29.03.2013
Сообщений: 33
Репутация: 10
По умолчанию

Пробовал с полным адресом, не помогло. Я по началу, когда только начинал писать программу, писал полный адрес, но это очень трудоемкое дело, утрудняло работу с кодом программы. Заменил одним свойством - host.

Я думал дело в кодировке, все варианты перепробовал, ничего не помогло.

Последний раз редактировалось Stilet; 01.07.2013 в 18:20.
tolprog вне форума   Ответить с цитированием
Старый 01.07.2013, 13:13   #10
Кольша
Далеко не
Профессионал
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Адрес: Россия, Новосибирск
Сообщений: 1,512
Репутация: 365

skype: K0lsha
По умолчанию

Цитата:
но это очень трудоемкое дело, утрудняло работу с кодом программы.
И чем же?
For example:
Код:
var
h:string;
 begin
idhttp1:=TIdHTTP.create(nil);
data:=tstringlist.Create;
idhttp1.Host:=cbb1.text;
idhttp1.Port:=80;
idhttp1.HandleRedirects:=true;
idhttp1.Request.UserAgent :='Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)';
Data.Add(AnsiToUtf8('user_name='+edt2.text));
data.add(AnsiToUtf8('user_password='+edt1.text));
data.Add(AnsiToUtf8('commit=Зайти'));
idhttp1.Connect;
h:=stringreplace(cbb1.text,'http://','',[rfreplaceall]);
h:=stringreplace(h,'/','',[rfreplaceall]);
repeat try
         text:=idhttp1.Post('http://'+h+'/visitor/process_login',data);
         a:=true;
       except
         a:=false;
       end;
until a;
__________________
admin[@]ksware.ru
Кольша вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 вопроса Lindemann66 Общие вопросы C/C++ 5 31.08.2011 11:32
2 вопроса W0LF Общие вопросы Delphi 17 19.09.2009 18:34
2 вопроса по ХП Molotok Windows 14 17.12.2008 13:43
2 вопроса по Delphi N!ckeL Помощь студентам 5 30.04.2008 17:12


09:33.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.