Russian Qt Forum
Ноябрь 27, 2024, 01:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QHttpResponseHeader и заголовки  (Прочитано 3927 раз)
zosia
Гость
« : Сентябрь 11, 2009, 19:03 »

Здравствуйте,

подскажите, пожалуйста, как из QHttpResponseHeader .values() выбрать нужный заголовок и конвертировать в QString, если их с одинаковым параметром аж целых 3?

т.е. например, в заголовках ответа сервера мы видим:

Set-Cookie: check=8; expires=Fri, 03-Sep-2010 00:24:44 GMT; path=/;
Set-Cookie: done=22; expires=Mon, 09-Sep-2010 06:14:32 GMT; path=/;
Set-Cookie: lost=19; expires=Sat, 11-Sep-2010 02:22:12 GMT; path=/;

если бы была одна строка, то:

QString return_value = responseHeader.value("set-cookie");
return_value = return_value.section(";", 0, 0);

а так он возвращает только первую строку с Set-Cookie, как например вытащить третию строку?

void wnd::Response(const QHttpResponseHeader &responseHeader){
QList< QPair<QString, QString> > values_list;
values_list.append(responseHeader.values());
// вот тут не знаю как дальше из value_list вытащить и выконвертировать это (((
}
Записан
Rcus
Гость
« Ответ #1 : Сентябрь 11, 2009, 19:23 »

/* Чувствует какой-то подвох */ Эм а в чем проблема? Итерация по QList возможна как минимум тремя способами, QPair тоже предоставляет доступ к элементам. Линейный поиск вручную конечно неинтересно, если хочется то можно и find_if'ом с предикатом на boost::bind описать это Веселый
Записан
zosia
Гость
« Ответ #2 : Сентябрь 12, 2009, 02:13 »

> Эм а в чем проблема?
я не знаю, как дальше из value_list вытащить, например вторые данные (данные второй строки) *set-cookie*, и конвертировать их в QString
Записан
SimpleSunny
Гость
« Ответ #3 : Сентябрь 12, 2009, 11:34 »

Код
C++ (Qt)
void wnd::Response(const QHttpResponseHeader &responseHeader){
QList< QPair<QString, QString> > values_list;
values_list.append(responseHeader.values());
 
//один из способов
for (int i = 0; i < values_list.size(); ++i)
    qDebug() << values_list[i].first << values_list[i].second
}
Записан
zosia
Гость
« Ответ #4 : Сентябрь 12, 2009, 14:12 »

Спасибо)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.069 секунд. Запросов: 21.