2013-01-30 4 views
1

с сервером gwan, можно ли получить строку запроса ... т.е. аргументы.gwan REQ_ENTITY или строка запроса

дал http://myserver.com/main.cpp?arg1=one&arg2=two

им ищет, чтобы получить символьную строку arg1=one&arg2=two

согласно docs, она должна быть

REQ_ENTITY,  // char *ENTITY   // "arg=x&arg=y..." 

но делает это дает мне пустую строку (с помощью арг на вышеизложенном url)

char * req = (char*) get_env(argv, REQ_ENTITY); 
xbuf_cat(get_reply(argv), req);; 

ага. я должен добавить, что get_arg("arg1" ...) не работает на этой же самой строчке url (предположим, что ее там где-то. Возможно, строка необработанного запроса

подсказку или указатель на пример может быть всем, что нужно. есть, что работа с отображением/перенаправлять в некоторой точке. http://myserver.com/main/arg1=one&arg2=two

с уважением

+0

** REQ_ENTITY ** для ** PUT ** или ** ** POST, а не для ГЭТ. Вы можете использовать XBUF_READ, QUERY_STRING и т. Д. (См. Примеры http://gwan.ch/source/argv.c и http://gwan.ch/source/served_from.c). – Gil

+0

QUERY_STRING предлагает имя csp и никаких аргументов. но, возможно, из-за поста. цикл while (i

+0

QUERY_STRING предоставит вам все параметры, если они вызваны до PARSING (из обработчика). После синтаксического анализа вы можете использовать get_arg() или main() argv [argc], см. Пример argv.c. – Gil

ответ

0

Этот красивый фрагмент кода работает для моей цели. найти в документации. Просто Concat их. так любят работать в с на сервер

int i = 0; 
while(i < argc) 
{ 
    xbuf_xcat(get_reply(argv), "argv[%u] '%s' <br>", i, argv[i]); 
    i++; 
} 

и адаптировать его к следующему:

string concatArgs(void) { 
    stringstream ss; 
    int i = 0; 
    while(i < argc) { 
     ss << argv[i++]; 
    } 
    return ss.str(); 
} 
+0

Это пример http://gwan.ch/source/argv.c. – Gil

0

быстрое примечание о REQ_ENTITY.

Ваш образец выше не имеет REQ_ENTITY, поскольку вы выполняете только запрос GET. Если запрос имеет тело сущности (например, POST), вы можете получить тело субъекта с помощью REQ_ENTITY, но обычно вам это не нужно, так как вы можете получить к нему доступ с помощью своего образца (пошаговый argv) или с помощью get_arg().

get_arg() sample