Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2009, 23:28   #1
Cold_Night
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 32
По умолчанию Неверно обрабатывается GET-запрос

Привет всем. Возникла необходимость отправить GET-запрос на сайт http://inviz.su. Почитал статью о запросах в этом разделе, очень познавательная. Так я отправляю запрос

Код:

function ExistsStr(SubStr, MainStr: string): Boolean;
begin
  if (Pos(SubStr, MainStr) = 0) = False then Result:=True else Result:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
var 
S: string;
begin
  S:=IdHTTP1.Get('http://inviz.su/?uin='+Edit1.Text);
 if ExistsStr('INVISIBLE', S) then ShowMessage('Инвиз') else
if ExistsStr('OFFLINE', S) then ShowMessage('Оффлайн') else
if ExistsStr('ONLINE', S) then ShowMessage('Онлайн');
end;
В форме запроса метод вообще не указан, а когда я запрашиваю по единому полю, тогда вообще возвращается левый ответ, не тот, что по нажатию на кнопку. В чём может быть ошибка? Заранее спасибо.

ЗЫ: Статья по-настоящему познавательная и полезная, автору респект

Последний раз редактировалось Cold_Night; 30.03.2009 в 23:31.
Cold_Night вне форума Ответить с цитированием
Старый 31.03.2009, 02:45   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

все в порядке с запросом
ты просто неверно обрабатываешь результат..
попробуй ANSIUpperCase использовать:

Код:
function ExistsStr(SubStr, MainStr: string): Boolean;
begin
  if Pos(ANSIUpperCase(SubStr), ANSIUpperCase(MainStr))=0 then Result:=False else Result:=true;
end;
и будь осторожнее там слово Invisible встречается не один раз
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 31.03.2009 в 02:53.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.03.2009, 08:37   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Метод GET используется по умолчанию, так что с выбором метода у вас верно. У меня к примеру на первый же запрос (из браузера) вернули что слишом частые попытки, и потом всегда только это и видел, так что советую этот вариант тоже проверять.
Насчет проверки вхождений в текст:
В модуле strutils есть ряд функций по работе с текстом, одна из которых вам подойдет:
Код:
function ContainsText(const AText, ASubText: string): Boolean; inline; overload;
Данная функция не учитывает регистр строк.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 31.03.2009, 12:17   #4
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
По умолчанию

Нужно еще проверять вариант: "Слишком много запросов с одного IP к сайту http://inviz.su/."

Вчера пытался зделать подобную програмку на C++ так из-за множества запросов в конечном итоге получал такое сообщение...
SalasAndriy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос Ruska882009 Помощь студентам 2 25.02.2009 03:02
Запрос White БД в Delphi 0 18.09.2008 09:30
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50
sql запрос работает неверно :( Vasya БД в Delphi 4 26.08.2007 14:59