Текущий архив: 2003.09.11;
Скачать: CL | DM;
Вниз
Приём параметров в консольном приложении Найти похожие ветки
← →
vajo (2003-07-02 14:42) [0]Имеется HTML, где вводится логин пользователя. При нажатии на кнопку Submit открывается страница
http://localhost/Test/Project2.exe?login=11&pass=22
Project2.exe - консольное приложение.
Как можно получить значения параметров login, pass, чтобы их использовать в Project2.exe?
← →
jel (2003-07-02 14:59) [1]Если правильно понял вопрос - консольное приложение это CGI?
Тогда вроде читать со стандартного ввода и смотреть чего прочиталось.
← →
vajo (2003-07-02 15:09) [2]? jel
А чем читать?
← →
Мое имя (клоны все равно суксь) (2003-07-02 18:40) [3]типа TWebRequest.Query
Indicates the value of the query information (if any) of the URL specified in the HTTP request message.
property Query: string;
Description
Read Query to determine the details of a query specified in the URL of the Web client request. For example, given this URL:
http://www.TSite.com/art/gallery.cgi/mammals?animal=dog&color=black
the Query portion is
animal=dog&color=black
Query is the unparsed query portion of the URL. The query may include multiple fields separated by ampersands. Use the QueryFields property to work with the query on a field-by-field basis.
или QueryFields
← →
MikeP (2003-07-02 18:50) [4]в общем случае (простое консольное приложение, не обязательно Web Server Application):
если параметры передаются так
http://localhost/Test/Project2.exe?login=11&pass=22
значит используется метод GET и нужно читать Envirounment Variable QUERY_STRING
если же используется метод POST (что предпочительнее в данном случае, чтобы не показывать пароль в окне броузера в открытом виде), то параметры читаются из стандартного ввода (ReadLn и пр.)
насчет их парсинга -
см. Мое имя (клоны все равно суксь) (02.07.03 18:40)
← →
vajo (2003-07-03 08:16) [5]>MikeP
А что указать в Readln? Что он должен прочитать?
← →
MikeP (2003-07-03 10:53) [6]2vajo
строку или символ
пока не прочитаешь столько байт сколько прописано в пер. окружения CONTENT_LENGTH
← →
vajo (2003-07-03 13:48) [7]> MikeP
Всётаки до меня не доходит как получить параметры.
Что за переменные CONTENT_LENGTH и QUERY_STRING? В хелпе про них ничего нет.
Можно для примера кусок кода или может тогда где почитать про это можно?
← →
Gigabyte (2003-07-03 16:57) [8]Используй стандртный Дкльфийский Wizard - WebService -> StandaloneCGI. Там за тебя все парсируется. Или смотри соответствующие исходники
← →
vajo (2003-07-04 12:35) [9]> Gigabyte
У меня в D7 нет WebService -> StandaloneCGI
← →
Palladin (2003-07-04 14:11) [10]1 есть там все
2 GetEnvironmentVariable
← →
vajo (2003-07-09 10:35) [11]Помогите кусочком кода примера. Нужно получить параметры из адресной строки. Я использую метод POST.
GetEnvironmentVariable - в хелпе нет примера.
← →
Palladin (2003-07-09 10:39) [12]и че?!!
нет примера??!!
КОШМАР!!!! УЖАС!!! Как же с таким хелпом программы писать а? и не говори
← →
Anatoly Podgoretsky (2003-07-09 10:51) [13]Нету, но зачем он нужен для такой элементарной функции, особенно учитывая, что в справке все параметры прекрасно описаны.
← →
vajo (2003-07-09 11:55) [14]DWORD GetEnvironmentVariable(
LPCTSTR lpName, // address of environment variable name
LPTSTR lpBuffer, // address of buffer for variable value
DWORD nSize // size of buffer, in characters
);
Parameters
lpName
Points to a null-terminated string that specifies the environment variable.
lpBuffer
Points to a buffer to receive the value of the specified environment variable.
nSize
Specifies the size, in characters, of the buffer pointed to by the lpBuffer parameter.
Где взять адрес переменной среды?
Где взять адрес буфера для значения переменной?
Как узнать размер буфера?
← →
Anatoly Podgoretsky (2003-07-09 11:58) [15]Нигде, все это ты предоставляешь сам.
← →
vajo (2003-07-09 13:45) [16]Ну, а к примеру какие адреса можно задать?
← →
Anatoly Podgoretsky (2003-07-09 13:49) [17]Любые, лишь бы были действительные.
← →
Palladin (2003-07-09 14:11) [18]тяжело тебе парень наверно...
var
vValue:PChar;
evValue:=StrAlloc(2000);
GetEnvironmentVariable("QUERY_STRING",evValue,2000);
вот, можешь скопировать...
освободить потом не забудь
← →
vajo (2003-07-10 12:10) [19]>Palladin
Спасибо работает!
Это работает при методе GET.
А если использовать метод POST, тогда как получить параметры?
← →
Palladin (2003-07-10 14:10) [20]при посте нужно читать из стандартного потока ввода stdin то бишь...
var
vValue:PChar;
Actual,StdIn,Size:integer;
StdIn := GetStdHandle(STD_INPUT_HANDLE);
Size := SetFilePointer(StdIn, 0, nil, FILE_END);
SetFilePointer(StdIn, 0, nil, FILE_BEGIN);
vValue:=StrAlloc(Size);
ReadFile(StdIn, vValue^, Size, Actual, nil);
Страницы: 1 вся ветка
Текущий архив: 2003.09.11;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.007 c