| |
асса DataInputStream.
Получение от программы CGI динамически сформированного ей документа HTML
наше приложение выполняет в цикле по строкам.
Строка документа HTML читается из входного форматированного потока методом
readLine и записывается в переменную str:
str = is.readLine();
Если в процессе чтения был достигнут конец потока, цикл прерывается:
if(str == null)
break;
Строка, полученная методом readLine, отображается на консоли пиложения:
System.out.println(str);
После завершения цикла входной поток закрывается методом close:
is.close();
Исходные тексты программы CGI
В лситинге 3.10 мы привели исходный текст программы CGI с именем controls.
Он несколько упрощен по сравнению с исходным текстом одноименного приложения,
описанного в 29 томе “Библиотеки системного программиста” - мы выбросили
обработку метода передачи данных GET, так как наше приложение CallCGI передает
данные только методом POST. Описание этой программы вы найдете в упомянутом 29
томе.
Листинг 3.10. Файл controls\controls.c
// ===============================================
// Программа CGI controls.c
// Демонстрирует методы получения и обработки
// данных от форм, расположенных в документах HTML
//
// (C) Фролов А.В., 1997
// E-mail: [email protected]
// WWW: http://www.glasnet.ru/~frolov
// или
// http://www.dials.ccas.ru/frolov
// ===============================================
#include
#include
#include
// Прототипы функций перекодировки
void DecodeStr(char *szString);
char DecodeHex(char *str);
// ------------------------------------------------
// Функция main
// Точка входа программы CGI
// ------------------------------------------------
void main(int argc, char *argv[])
{
int lSize;
FILE * fileReceived;
char * szMethod;
char szBuf[8196];
char szSrcBuf[8196];
char * szPtr;
char * szParam;
// Вывод заголовка HTTP и разделительной строки
printf("Content-type: text/html\n\n");
// Вывод начального
|
|