![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приём параметров в консольном приложении
vajo © (2003-07-02 14:42:00)Имеется HTML, где вводится логин пользователя. При нажатии на кнопку Submit открывается страница
http://localhost/Test/Project2.exe?login=11&pass=22
Project2.exe - консольное приложение.
Как можно получить значения параметров login, pass, чтобы их использовать в Project2.exe?
Palladin (2003-07-10 14:10:00) [1]
при посте нужно читать из стандартного потока ввода 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);
vajo (2003-07-10 12:10:00) [2]
>Palladin
Спасибо работает!
Это работает при методе GET.
А если использовать метод POST, тогда как получить параметры?
Palladin (2003-07-09 14:11:00) [3]
тяжело тебе парень наверно...
var
vValue:PChar;
evValue:=StrAlloc(2000);
GetEnvironmentVariable("QUERY_STRING",evValue,2000);
вот, можешь скопировать...
освободить потом не забудь
Anatoly Podgoretsky (2003-07-09 13:49:00) [4]
Любые, лишь бы были действительные.
vajo (2003-07-09 13:45:00) [5]
Ну, а к примеру какие адреса можно задать?
Anatoly Podgoretsky (2003-07-09 11:58:00) [6]
Нигде, все это ты предоставляешь сам.
vajo (2003-07-09 11:55:00) [7]
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 10:51:00) [8]
Нету, но зачем он нужен для такой элементарной функции, особенно учитывая, что в справке все параметры прекрасно описаны.
Palladin (2003-07-09 10:39:00) [9]
и че?!!
нет примера??!!
КОШМАР!!!! УЖАС!!! Как же с таким хелпом программы писать а? и не говори
vajo (2003-07-09 10:35:00) [10]
Помогите кусочком кода примера. Нужно получить параметры из адресной строки. Я использую метод POST.
GetEnvironmentVariable - в хелпе нет примера.
Palladin (2003-07-04 14:11:00) [11]
1 есть там все
2 GetEnvironmentVariable
vajo (2003-07-04 12:35:00) [12]
> Gigabyte
У меня в D7 нет WebService -> StandaloneCGI
Gigabyte (2003-07-03 16:57:00) [13]
Используй стандртный Дкльфийский Wizard - WebService -> StandaloneCGI. Там за тебя все парсируется. Или смотри соответствующие исходники
vajo (2003-07-03 13:48:00) [14]
> MikeP
Всётаки до меня не доходит как получить параметры.
Что за переменные CONTENT_LENGTH и QUERY_STRING? В хелпе про них ничего нет.
Можно для примера кусок кода или может тогда где почитать про это можно?
MikeP (2003-07-03 10:53:00) [15]
2vajo
строку или символ
пока не прочитаешь столько байт сколько прописано в пер. окружения CONTENT_LENGTH
vajo (2003-07-03 08:16:00) [16]
>MikeP
А что указать в Readln? Что он должен прочитать?
MikeP (2003-07-02 18:50:00) [17]в общем случае (простое консольное приложение, не обязательно Web Server Application):
если параметры передаются так
http://localhost/Test/Project2.exe?login=11&pass=22
значит используется метод GET и нужно читать Envirounment Variable QUERY_STRING
если же используется метод POST (что предпочительнее в данном случае, чтобы не показывать пароль в окне броузера в открытом виде), то параметры читаются из стандартного ввода (ReadLn и пр.)
насчет их парсинга -
см. Мое имя (клоны все равно суксь) (02.07.03 18:40)
Мое имя (клоны все равно суксь) (2003-07-02 18:40:00) [18]типа 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
vajo (2003-07-02 15:09:00) [19]
? jel
А чем читать?
jel (2003-07-02 14:59:00) [20]
Если правильно понял вопрос - консольное приложение это CGI?
Тогда вроде читать со стандартного ввода и смотреть чего прочиталось.