Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2014, 23:51   #1
Rakim4ik
Пользователь
 
Регистрация: 04.12.2012
Сообщений: 26
По умолчанию IdHTTP + Cookie

Код:
var
 HTTP: TIdHTTP;
html:string;
begin
HTTP:=TIdHTTP.Create(Form1);
HTTP.IOHandler:=form1.IdSSLIOHandlerSocketOpenSSL1;
HTTP.HandleRedirects:=true;
HTTP.request.customheaders.add('Cookie: '+form1.Edit7.Text);
html:=http.Get('http://steamcommunity.com/market/listings/730/Winter%20Offensive%20Weapon%20Case');
Memo1.Text:=html;
FreeAndNil(HTTP);
end;
Если в Edit 7 вставляю свои cookie, то приходит пустая страница ><
Если оставляю пустым, то приходит нормальной.

Вот cookie:

Цитата:
sessionid=********; steamCC_********=RU; steamLogin=********; Steam_Language=russian; timezoneOffset=14400,0; __utma=268881843.272871482.13927406 05.1392740605.1392740605.1; __utmb=268881843.0.10.1392740605; __utmc=268881843; __utmz=268881843.1392740605.1.1.utm csr=(direct)|utmccn=(direct)|utmcmd =(none)
В чём проблема ? Уже голова кипит ><
P.S. Заранее спасибо.

Последний раз редактировалось Stilet; 19.02.2014 в 20:29.
Rakim4ik вне форума Ответить с цитированием
Старый 19.02.2014, 00:34   #2
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Код заголовка пустой страницы? Страница не может быть пустой. Есть заголовок, в котором возможно стоит редирект, который некорректно обрабатывается инди, возможно заголовок содержит новые куки, взамен старых, которые нужно обработать и создать новый запрос. Это только догадки, но в любом случае нужно смотреть заголовки.

Последний раз редактировалось doktor255; 19.02.2014 в 00:52.
doktor255 вне форума Ответить с цитированием
Старый 19.02.2014, 01:06   #3
Rakim4ik
Пользователь
 
Регистрация: 04.12.2012
Сообщений: 26
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Код заголовка пустой страницы? Страница не может быть пустой. Есть заголовок, в котором возможно стоит редирект, который некорректно обрабатывается инди, возможно заголовок содержит новые куки, взамен старых, которые нужно обработать и создать новый запрос. Это только догадки, но в любом случае нужно смотреть заголовки.
А можно как нибудь загнать cookie с Thromium в IdCookieManager и работать уже с idHTTP ?
Если да, то не затруднит ли вас набросать код ?
А то я с куками первый день разбираюсь, а голова уже гудит ><
Заранее спасибо
Rakim4ik вне форума Ответить с цитированием
Старый 19.02.2014, 02:00   #4
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Я что, по китайски обозначил просьбу? Говорю заголовки ответов давай, будем смотреть в чём конкретно проблема. То есть сначала дать заголовки а потом просить помочь, а не наоборот.
P.S. Хватит писать жирным шрифтом. Я не слепой. И хватит в каждом сообщении заранее благодарить. Лучше поблагодарить в конце за дело, чем +100500 раз в течении беседы неизвестно за что. Достала эта фраза паразит.

Последний раз редактировалось doktor255; 19.02.2014 в 02:05.
doktor255 вне форума Ответить с цитированием
Старый 19.02.2014, 02:09   #5
Rakim4ik
Пользователь
 
Регистрация: 04.12.2012
Сообщений: 26
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Я что, по китайски обозначил просьбу? Говорю заголовки ответов давай, будем смотреть в чём конкретно проблема. То есть сначала дать заголовки а потом просить помочь, а не наоборот.
P.S. Хватит писать жирным шрифтом. Я не слепой. И хватит в каждом сообщении заранее благодарить. Лучше поблагодарить в конце за дело, чем +100500 раз в течении беседы неизвестно за что. Достала эта фраза паразит.
Пусто >< Я же говорю, если в Edit закинуть куки, то в memo пусто.
А если его просто оставить пустым, то отображается полный html страницы.
P.S. Жирный текст привычка и не более хД
Rakim4ik вне форума Ответить с цитированием
Старый 19.02.2014, 09:57   #6
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Бывают же такие... труднодоходящие. Изучай.
Код:
ShowMessage(IdHttp1.ResponseText + #13#10 + IdHttp1.Response.RawHeaders.Text);

Последний раз редактировалось doktor255; 19.02.2014 в 10:12.
doktor255 вне форума Ответить с цитированием
Старый 19.02.2014, 15:17   #7
Rakim4ik
Пользователь
 
Регистрация: 04.12.2012
Сообщений: 26
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Бывают же такие... труднодоходящие. Изучай.
Код:
ShowMessage(IdHttp1.ResponseText + #13#10 + IdHttp1.Response.RawHeaders.Text);
HTTP/1.1 302 Found
Server: Apache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-cache
Pragma: no-cache
Location: https://steamcommunity.com/market/el...eapon%2520Case
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Accept-Ranges: bytes
Date: Wed, 19 Feb 2014 11:17:00 GMT
X-Varnish: 605978819
Age: 0
Via: 1.1 varnish
Connection: keep-alive
Rakim4ik вне форума Ответить с цитированием
Старый 19.02.2014, 15:20   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Rakim4ik Посмотреть сообщение
HTTP/1.1 302 Found
Server: Apache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-cache
Pragma: no-cache
Location: https://steamcommunity.com/market/el...eapon%2520Case
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Accept-Ranges: bytes
Date: Wed, 19 Feb 2014 11:17:00 GMT
X-Varnish: 605978819
Age: 0
Via: 1.1 varnish
Connection: keep-alive
у вас редирект, его надо или обработать самому или idhttp.HandleRedirects:=true.
у вас редирект на https кстати, готовьтесь
и все понятно почему, стим требует что если залогинены то соединение было защищено.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.02.2014, 15:24   #9
Rakim4ik
Пользователь
 
Регистрация: 04.12.2012
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
у вас редирект, его надо или обработать самому или idhttp.HandleRedirects:=true.
у вас редирект на https кстати, готовьтесь
и все понятно почему, стим требует что если залогинены то соединение было защищено.
HTTP.IOHandler:=form1.IdSSLIOHandle rSocketOpenSSL1;
HTTP.HandleRedirects:=true;

Да и библиотеки скинуты в проект.
На прошлой неделе как-то получилось, но делал ночью и только лишь для теста, потом забыл сохранить проект и лёг спать. Теперь жалею

Щас посмотрел через Charles и оказалось, что я cookie не правильно собираю ><
А код рабочий...
Собираю cookie с Thromium таким образом :

Код:
function TForm1.write_cookie: string;
var
  ctx: ICefv8Context;
  val: ICefv8Value;
begin
  ctx := form1.Chromium1.Browser.MainFrame.GetV8Context;
  ctx.Enter;
  try
    val := ctx.Global.GetValueByKey('document').GetValueByKey('cookie');
    Form1.Edit7.Text:=(val.GetStringValue);
  finally
    ctx.Exit;
  end;
end;
или же таким:

Код:
Chromium1.Load('javascript:document.write(document.cookie)');
Что в принципе одно и тоже. Получаю такие cookie :

Цитата:
sessionid=********; steamCC_********=RU; steamLogin=********; Steam_Language=russian; timezoneOffset=14400,0; __utma=268881843.272871482.13927406 05.1392740605.1392740605.1; __utmb=268881843.0.10.1392740605; __utmc=268881843; __utmz=268881843.1392740605.1.1.utm csr=(direct)|utmccn=(direct)|utmcmd =(none)

А в Charles были такие и только с ними всё заработало :

Цитата:
sessionid=**********; webTradeEligibility=%7B%22allowed%2 2%3A1%2C%22allowed_at_time%22%3A0%2 C%22steamguard_required_days%22%3A1 5%2C%22sales_this_year%22%3A11559%2 C%22max_sales_per_year%22%3A-1%2C%22forms_requested%22%3A0%2C%22 new_device_cooldown_days%22%3A7%7D; strInventoryLastContext=753_0; steamLogin=**********; Steam_Language=russian; steamCC_93_190_203_178=RU; timezoneOffset=14400,0; __utma=268881843.2062175627.1392458 260.1392813310.1392816475.39; __utmb=268881843.0.10.1392816475; __utmc=268881843; __utmz=268881843.1392761120.34.3.ut mcsr=store.steampowered.com|utmccn= (referral)|utmcmd=referral|utmcct=/app/22000/

В чём собственно и вопрос, как получить cookie с Thcromium такие же как я предоставил с Charles ?

Последний раз редактировалось Stilet; 19.02.2014 в 20:45.
Rakim4ik вне форума Ответить с цитированием
Старый 19.02.2014, 18:56   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а зачем козе баян?
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
GET + cookie jone Мультимедиа в Delphi 2 05.09.2013 22:16
c cookie на session linkoln_7 PHP 6 28.05.2013 23:35
Cookie sem_1989 PHP 16 10.08.2011 00:13
idhttp & cookie Dеlphi Работа с сетью в Delphi 4 12.04.2011 00:42
Проблема с Cookie eldar Работа с сетью в Delphi 5 21.08.2008 13:27