Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Delphi. idHTTP. Get и post запросыСодержание книги
Поиск на нашем сайте
http://delphi-info.ru/?p=11 В данной статье я объясню как работать с компонентом idHTTP, научимся посылать Get и post запросы. Для начала ставим компонент idHTTP на форму. Распологается он в вкладке Indy Clients => TidHTTP. Ставим на форму кнопку (Standard => TButton), текстовое поле (Standard => TMemo). Рассмотрим пример с get запросом: var Рассмотрим пример с post запросом: Проверка доступности интернет-ссылок
Проверяю так: var st:string;
st:=IdHTTP.Get('http://www.yandex.ru/index.html'); Выдает ResponseCode=200, т.е. все ОК, ссылка доступна или ResponseCode=404, - ссылка недоступна Проблема: в переменную st возвращается весь контент заданной URL, т.е. скачивается вся html-страница. Как сделать так, чтобы вернулась не вся страница, а только несколько байт например. Мне ведь сама страница-то не нужна.
Уже пробовал устанавливать свойство RecvBufferSize маленьким, все равно скачивается вся страница.
Или есть другой способ проверить интернет-ссылку на доступность? все в порядке. Нашел. IdHTTP.DoRequest(hmHead, edit1.text, nil, nil); При этом посылается всего 708 байт! Контент страницы не выкачивается, что мне и нужно.
Спасибо, что навели на мысль.
Как узнать свой внешний ip Если можно, то приведите код. Используй компонент idHTTP.
Код такой:
Код Delphi1
procedure TForm1.Button1Click(Sender: TObject); var SL: TStringList; begin SL:=TStringList.Create; HTTP:=HTTP.Create(); SL.Text:=HTTP.Get('http://internet.yandex.ru/'); //Теперь SL-содержит текст с этой странички, в том числе и IP-адрес end;
procedure TForm1.Button1Click(Sender: TObject); var SL: TStringList; begin SL:=tStringList.Create; idHTTP1:=idHTTP1.Create(); SL.Text:=idHTTP1.Get('http://internet.yandex.ru/'); Label1.Caption:='IP-адрес: '+copy(SL.Strings[77],46,13); Label2.Caption:='Город: '+copy(SL.Strings[92],46,9); end;
Можно сделать очень просто. Послать запрос на yandex допустим и потом поюзав страницу выдрать оттуда IP... Примеры:
Код Delphi1 type ... idhtp1: TIdHTTP; ...
var ... txt:string; p,p2:integer; SL: TStringList; ...
function Yandex_IP():string; SL.Text:=idhtp1.Get('http://internet.yandex.ru/'); txt:=SL.Text p:=Pos('Мой IP:',txt); Delete(txt,1,p-1); p:= Pos('<dd class="item">',txt); Delete(txt,1,p + 16); p2:=Pos('</dd>',txt); Result:= Copy(txt,1,p2-1); end;
или с 2ip.ru
Код Delphi1 function 2ip.ru_IP():string; SL.Text:=idhtp1.Get('http://internet.2ip.ru/');и txt:=SL.Text; p:=Pos('Ваш IP адрес:',txt); Delete(txt,1,p-1); p:= Pos('</span> <big>',txt); Delete(txt,1,p + 12); p2:=Pos('</big>',txt); Result:= Copy(txt,1,p2-1); end; Скачиваем файлы из интернета Автор: Вадим К Задача: скачать файл по http в указанную папку с использованием потока. Делаем форму Бросаем на форму два TEdit, TProgressBar, одну кнопку и TSaveDialog. Для кнопки пишем маленький обработчик: //Этой строкой мы скопируем имя файла SaveDialog1.FileName:=copy(Edit1.Text,LastDelimiter('\⁄',Edit1.Text)+1,maxint); Теперь на форму добавим IdHTTP и кнопку (Button2) с надписью "начать закачку". Делаем поток С обработчиком пока повременим, а напишем самое сложное – класс для потока. {$R *.dfm} Первые две строки сделаны для того, чтобы было видно, где вписать код. И нажимаем Ctrl+Shift+C. Delphi допишет немного кода. Он теперь будет выглядеть так: type procedure TForm1.Button1Click(Sender: TObject); { TDownLoader } procedure TDownLoader.Execute; Компонент idHTTP был брошен на форму только с одной целью – чтобы Delphi добавила все заголовочные файлы в uses. Потом его можно будет удалить. Но можно и самостоятельно вписать в uses файл idHTTP. Главный код потока Итак, код обработчика: procedure TDownLoader.Execute; end;
|
||||
Последнее изменение этой страницы: 2016-08-01; просмотров: 6514; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.4.42 (0.006 с.) |