Вверх ↑
Этот топик читают: Гость
Ответов: 4628
Рейтинг: 749
#1: 2013-05-13 12:38:55 ЛС | профиль | цитата
Три компонента для протокола HTTP

НазваниеВерсияОписание
HTTPClient1.7Клиент для работы с протоколом HTTP, поддерживает POST, куки, аплоад файлов и др.
CookieManager2.1Накопление, управление и сохранение HTTP куки
URLParser1.0Разбор URL адресов на составляющие


Обновлено 17.04.2020

СКАЧАТЬ

У кого уже были установлены - для обновления вручную скопировать все файлы *.ini в папку "conf", файлы *.pas - в папку "code".


HTTPClient умеет:
- отправка POST-запросов с аплоадом файлов
- произвольное тело запроса (например, JSON)
- пользовательские заголовки запроса
- работа с куки посредством CookieManager
- чтение заголовков ответа
- работа через прокси с авторизацией по методам Basic, Digest
- HTTP-авторизация по методам Basic, Digest
- работа через SSL
- сохранение ответа в строку, файл, стрим
- скачивание и докачка файлов любого размера
- поскольку работает с куки, может использоваться для работы с сайтами, требующими авторизации.

Редактировалось 32 раз(а), последний 2020-05-06 15:20:09
карма: 26

11
Голосовали:RinniX, Konst, LainX, filyaxxxcom, Vadimluk1, andrestudio, strannik_nebes, Joiner, Pavel, ric, zhorik5
Разработчик
Ответов: 26113
Рейтинг: 2126
#2: 2013-05-13 13:16:33 ЛС | профиль | цитата
Readme писал(а):
Куки, для которых не истек срок годности, "HTTP requester"
при выходе сохраняет в файле cookies.txt рядом с собой
и загружает их при старте

Зачем это делать автоматиечски

Кстати -- а что, кроме StrScan ничего больше не нашлось для поиска символа
карма: 22

0
Ответов: 4628
Рейтинг: 749
#3: 2013-05-13 13:47:42 ЛС | профиль | цитата
nesco писал(а):
Зачем это делать автоматически?
Это только в демонстрационной схеме. Компонент делает это только по требованию.

Я StrScan не использую. Я использую KOL.Parse, KOL.IndexOfStr, которые зависят от StrScan.

карма: 26

0
Ответов: 4628
Рейтинг: 749
#4: 2014-10-02 13:00:25 ЛС | профиль | цитата
В первом посте обновлены компоненты

1) Выброшен HTTP_Response за ненадобностью
2) Добавлен компонент HTTPClient
3) Переработан CookieManager

HTTPClient
Плод долгой и упорной работы, эдакий комбайн для работы с HTTP. Фактически заменяет собой HTTP_FileUpload и HTTP_Get.

Умеет:
- работать через прокси с авторизацией по методам Basic, Digest (не протестировано)
- HTTP-авторизация по методам Basic, Digest
- работа через SSL
- отправка POST-запросов с аплоадом файлов
- пользовательские заголовки запроса
- работа с куки посредством CookieManager
- чтение заголовков ответа
- сохранение ответа в строку, файл, стрим
- поскольку работает с куки, может использоваться для работы с сайтами, требующими авторизации.

Есть примеры. У кого есть возможность протестировать через прокси с авторизацией - отпишите результаты.
Для работы также требуется установленный CookieManager.


CookieManager

- переделан для работы в качестве менеджера
- может устанавливать/получать куки из Internet Explorer
- поправлены алгоритмы работы с куки (если заметите отличия от стандартных браузеров - сообщайте)

карма: 26

8
Голосовали:Gunnman, ser_davkin, Konst, ksander, minos, sashaoli, UtoECat, DiMyxa
Ответов: 655
Рейтинг: 18
#5: 2014-10-03 21:35:27 ЛС | профиль | цитата
Netspirit, Огромное спасибо!
карма: 0

0
Ответов: 6
Рейтинг: 0
#6: 2014-10-30 13:04:45 ЛС | профиль | цитата
ПРи использовании HTTPClient влетает Runtime error 216 с кучей адресов
карма: 0

0
Ответов: 4628
Рейтинг: 749
#7: 2014-10-30 13:06:30 ЛС | профиль | цитата
Схемку сюда.
карма: 26

0
Ответов: 6
Рейтинг: 0
#8: 2014-10-30 13:48:22 ЛС | профиль | цитата
Netspirit писал(а):
Схемку сюда.

code_34519.txt
Собственно при любых раскладах да же на совсем элементарной схеме
карма: 0

0
файлы: 1code_34519.txt [294B] [1697]
Ответов: 4628
Рейтинг: 749
#9: 2014-10-30 13:58:45 ЛС | профиль | цитата
Проблема в стандартном компиляторе FPC. Исправить можно, поместив файл из этого архива в папку HiAsm\compiler\fpc.
Но, вероятней всего, у тебя устаревшая версия HiAsm. В дальнейшем могут быть другие ошибки.
Крайне рекомендуется установить Альтернативную сборку

Редактировалось 1 раз(а), последний 2019-04-23 10:31:18
карма: 26

0
Ответов: 6
Рейтинг: 0
#10: 2014-10-30 19:09:08 ЛС | профиль | цитата
Спасибо.. помогло.. верися вроде как последняя
карма: 0

0
Ответов: 6
Рейтинг: 0
#11: 2014-11-01 02:07:57 ЛС | профиль | цитата
А не затруднит примерчик по закачке файла на сервер?
Форма для закачки
    <body>
    <form enctype="multipart/form-data" action="upload.php" method="post">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000000">
    Выберите необходимый файл: <input name="userfile" type="file">
    <input type="submit" value="Начать закачку">
    </form>
    </body>
    </html>
карма: 0

0
Ответов: 824
Рейтинг: 138
#12: 2014-11-01 14:29:12 ЛС | профиль | цитата
HTTPClient не берет системные параметры прокси...
------------ Дoбавленo в 15.29:
Авторизация, при указании прокси сервера, работает.
карма: 1

0
Ответов: 4628
Рейтинг: 749
#13: 2014-11-02 17:00:33 ЛС | профиль | цитата
hasper писал(а):
А не затруднит примерчик

Примерно так: code_34539.txt

sashaoli писал(а):
не берет системные параметры прокси

Свойства UseSystemProxy=True и Proxy=пусто?

карма: 26

0
файлы: 1code_34539.txt [893B] [1650]
Ответов: 824
Рейтинг: 138
#14: 2014-11-03 13:26:35 ЛС | профиль | цитата
Netspirit писал(а):
Свойства UseSystemProxy=True и Proxy=пусто?
Да.

При подачи сигнала на точку doLoadFile отличного от NULL и при пустом Proxy, выдает ошибку, если прописать прокси или подать данные на верхнюю точку Proxy - ошибка не происходит.
пример

Add(MainForm,2953706,168,427)
{
Width=511
Point(onKeyDown)
}
Add(Button,13511610,273,469)
{
Left=10
Top=45
Height=40
Caption="Стоп"
Data=String(http://sashaoli.ho.ua/newver/latesver.txt)
link(onClick,7368066:doLoadFile,[])
AddHint(-145,53,205,26,Data)
}
Add(Message,7369769,427,483)
{
}
Add(HTTPClient,7368066,357,462)
{
URL="http://sashaoli.ho.ua/newver/latesver.txt"
FileName="123.txt"
Point(Proxy)
link(onError,7369769:doMessage,[])
AddHint(-78,-84,195,26,URL)
AddHint(75,-36,47,13,FileName)
}

карма: 1

0
Ответов: 4628
Рейтинг: 749
#15: 2014-11-03 13:45:40 ЛС | профиль | цитата
Ага. Там есть некоторые неочевидности в порядке чтения верхних точек. Соответственно, при подаче данных из потока разобраться, куда эти данные пойдут, невозможно без заглядывания в код.
Вообще, как стоит делать в таких случаях? При вызове любого метода сначала читать по порядку все верхние точки в переменные, а затем подставлять в нужные места? Сейчас точки читаются непосредственно в тех местах, где они нужны, и порядок чтения не совпадает с порядком точек.
карма: 26

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)