Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 7079; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.) |