uIP 1.0
Файлы | Функции
Web-клиент
Приложения

Этот пример показывает, как клиент протокола HTTP может загружать web-страницы с web-серверов. Подробнее...

Файлы

файл  webclient.h
 

Header file for the HTTP client.


файл  webclient.c
 

Реализация клиента HTTP.


Функции

void webclient_datahandler (char *data, u16_t len)
 Функция обратного вызова (callback), которая будет вызвана из кода web-клиента, когда приняты данные HTTP.
void webclient_connected (void)
 Функция обратного вызова (callback), которая вызывается из кода web-клиента, когда с web-сервером установлено HTTP-соединение.
void webclient_timedout (void)
 Функция обратного вызова (callback), которая вызывается из кода web-клиента, если истек таймаут HTTP-соединения с web-сервером.
void webclient_aborted (void)
 Функция обратного вызова (callback), которая вызывается из кода web-клиента, если HTTP-соединение с web-сервером было оборвано (aborted) на стороне web-сервера.
void webclient_closed (void)
 Функция обратного вызова (callback), которая вызывается из кода web-клиента, если HTTP-соединение с web-сервером было закрыто.
void webclient_init (void)
 Инициализирует модуль web-клиента.
unsigned char webclient_get (char *host, u16_t port, char *file)
 Открывает соединение HTTP с web-сервером и запрашивает файл с использованием метода GET.
void webclient_close (void)
 Закрывает открытое в настоящий момент соединение HTTP.
char * webclient_mimetype (void)
 Получает тип MIME текущего потока данных HTTP.
char * webclient_filename (void)
 Получает имя файла текущего потока данных HTTP.
char * webclient_hostname (void)
 Получение имени хоста текущего потока данных HTTP.
unsigned short webclient_port (void)
 Получение номера порта текущего потока данных HTTP.

Подробное описание

Этот пример показывает, как клиент протокола HTTP может загружать web-страницы с web-серверов.

Он требует реализации нескольких функций обратного вызова (callback) в модуле, который задействует код: webclient_datahandler(), webclient_connected(), webclient_timedout(), webclient_aborted(), webclient_closed().


Функции

void webclient_aborted ( void  )

Функция обратного вызова (callback), которая вызывается из кода web-клиента, если HTTP-соединение с web-сервером было оборвано (aborted) на стороне web-сервера.

Эта функция должна быть реализована в модуле, который использует код web-клиента.

Примеры:
webclient.c и webclient.h.
void webclient_closed ( void  )

Функция обратного вызова (callback), которая вызывается из кода web-клиента, если HTTP-соединение с web-сервером было закрыто.

Эта функция должна быть реализована в модуле, который использует код web-клиента.

Примеры:
webclient.c и webclient.h.
void webclient_connected ( void  )

Функция обратного вызова (callback), которая вызывается из кода web-клиента, когда с web-сервером установлено HTTP-соединение.

Эта функция должна быть реализована в модуле, который использует код web-клиента.

Примеры:
webclient.c и webclient.h.
void webclient_datahandler ( char *  data,
u16_t  len 
)

Функция обратного вызова (callback), которая будет вызвана из кода web-клиента, когда приняты данные HTTP.

Эта функция должна быть реализована в модуле, который использует код web-клиента. Функция вызывается из модуля web-клиента, когда приняты данные HTTP. Функция не вызывается, когда приняты заголовки HTTP, её вызов делается только для актуальных данных.

Заметки:
Эта функция будет вызвана много раз с повторениями, когда приняты данные, и не один раз, когда были получены все данные.
Аргументы:
dataУказатель на данные, которые были приняты.
lenДлина принятых данных.
Примеры:
webclient.c и webclient.h.
char * webclient_filename ( void  )

Получает имя файла текущего потока данных HTTP.

Имя файла запроса HTTP может быть изменено web-сервером, и таким образом оно может быть не то же самое, что и имя, которое было указано в оригинальном запросе GET при вызове webclient_get(). Эта функция используется для получения текущего имени файла.

Возвращает:
Указатель на текущее имя файла.
Примеры:
webclient.c и webclient.h.

См. определение в файле webclient.c строка 94

unsigned char webclient_get ( char *  host,
u16_t  port,
char *  file 
)

Открывает соединение HTTP с web-сервером и запрашивает файл с использованием метода GET.

Эта функция открывает соединение HTTP к указанному web-серверу и запрашивает указанный файл с использованием метода GET. Когда соединение HTTP установлено, будет вызвана функция обратного вызова webclient_connected(), и когда данные поступят, будет вызвана функция обратного вызова webclient_datahandler().

Функция обратного вызова webclient_timedout() будет вызвана, если web-сервер не отвечает, и функция обратного вызова webclient_aborted(), если соединение HTTP было оборвано (aborted) со стороны web-сервера.

Когда запрос HTTP был завершен и соединение HTTP закрыто, будет вызвана функция обратного вызова webclient_closed().

Заметки:
Если функции передано имя хоста, оно уже должно быть в кеше резолвера имен для того, чтобы функция могла подключиться к web-серверу. Поэтому на вызывающий модуль ложится ответственность на реализацию вызовов резолвера и сигнального обработчика, используемого для сообщения об ответе на запрос резолвера.
Аргументы:
hostУказатель на строку, содержащую либо имя хоста, либо цифровой адрес IP в форме строки с точками (напримера 192.168.23.1).
portНомер порта, к которому будет произведено соединение, с порядком следования байт хоста.
fileУказатель на имя файла, получаемого по протоколу HTTP.
Возвращаемые значения:
0если имя хоста не было найдено в кэше, или если не может быть установлено соединение TCP.
1если было инициировано соединение.
Примеры:
webclient.c и webclient.h.

См. определение в файле webclient.c строка 141

Перекрестные ссылки htons(), resolv_lookup() и uip_connect().

char * webclient_hostname ( void  )

Получение имени хоста текущего потока данных HTTP.

Имя хоста запроса HTTP может быть изменено web-сервером, и таким образом оно может быть не то же самое, что и имя, которое было указано в оригинальном запросе GET при вызове webclient_get(). Эта функция используется для получения текущего имени хоста.

Возвращает:
Указатель на текущее имя хоста.
Примеры:
webclient.c и webclient.h.

См. определение в файле webclient.c строка 100

char * webclient_mimetype ( void  )

Получает тип MIME текущего потока данных HTTP.

Возвращает:
Указатель на строку, содержащую тип MIME. Строка может быть пустой, если web-сервером не было сообщено от типе MIME.
Примеры:
webclient.c и webclient.h.

См. определение в файле webclient.c строка 88

unsigned short webclient_port ( void  )

Получение номера порта текущего потока данных HTTP.

Номер порта запроса HTTP может быть изменен web-сервером, и таким образом он может быть не тот же самый, что и порт, который был указан в оригинальном запросе GET при вызове webclient_get(). Эта функция используется для получения текущего номера порта.

Возвращает:
Номер порта текущего потока данных HTTP, с порядком следования байт хоста.
Примеры:
webclient.c и webclient.h.

См. определение в файле webclient.c строка 106

void webclient_timedout ( void  )

Функция обратного вызова (callback), которая вызывается из кода web-клиента, если истек таймаут HTTP-соединения с web-сервером.

Эта функция должна быть реализована в модуле, который использует код web-клиента.

Примеры:
webclient.c и webclient.h.