POST, новый метод получения куков через C# что-то не работает(

  • Автор темы Автор темы Bernhard
  • Дата начала Дата начала

Bernhard

Client
Регистрация
17.08.2013
Сообщения
86
Реакции
5
Баллы
8
После переноса моей темы, почему-то в нее немогу постить, пишу заного. Старая тема тут.

Записал скринкаст http://screencast.com/t/y2CdSguCN

Все вроде сделано правильно:
Авторизуюсь через записанные действия, далее получаю куки новым методом чз C#, куки получаются на тесте, передаю в GET (для примера), а он не отображает содержимое сайта, выкидывает на форму авторизации.

Что я делаю не так? Мне нужно работать внутри этого сайта POST и GET запросами, хочу облегчить свой тяжелый шаблон на блоках.
 
GET запрос не открывает страницу в браузере. Он только получает в переменную содержимое страницы
 
GET запрос не открывает страницу в браузере. Он только получает в переменную содержимое страницы
Так он и не открывает, там последний блок C# отображает содержимое GET, что я показал в видео, упирается в форму, авторизации.
 
А вы не пробовали авторизацию тоже сделать на пост/гет запросах?
 
А вы не пробовали авторизацию тоже сделать на пост/гет запросах?
У каждого сайта, своя сложность авторизации, проще сделать авторизацию блоками, чем высниффовывать значения, тем более в фотостране, используются токены, просто так постом не пролезишь, надо организовать его выпарсивание, сейчас попробую, пока не отвтит кто с решинием проблемы рабочести вытаскивания кук с# из инстанса.
 
Войти получилось, но приходится выпарсить куки на каждый шаг, что трудоемко... нужно, чтобы заработал метод через c# объвленный в последней версии.
 
Войти получилось, но приходится выпарсить куки на каждый шаг, что трудоемко... нужно, чтобы заработал метод через c# объвленный в последней версии.

Пытаюсь отправить каритнку, приходит пустое содеражание ответа, заголовки:
Пробую отправить картинку, приходит пустой ответ, заголовки:
HTTP/1.1 100 Continue HTTP/1.1 200 OK Server: nginx Date: Wed, 30 Oct 2013 16:31:43 GMT Content-Type: text/html; charset=windows-1251 Content-Length: 168 Connection: keep-alive Set-Cookie: uea=1; expires=Fri, 07-Feb-2014 16:31:43 GMT; path=/; domain=.fotostrana.ru Expires: Thu, 01 Jan 1970 00:00:01 GMT Last-Modified: Wed, 30 Oct 2013 16:31:43 GMT Cache-Control: no-store, no-cache, must-revalidate Cache-Control: post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: ab_nopopup_inst_group=0; expires=Fri, 29-Nov-2013 16:31:43 GMT; path=/; domain=.fotostrana.ru
в чем проблема?

Отправляю такие данные:

--8d098b443025d75
Content-Disposition: form-data; name="photo"; filename="01.jpg"
Content-Type: image/jpeg

{-Project.Directory-}01.jpg
--8d098b443025d75
Content-Disposition: form-data; name="type"

1
 
А ответ сниффается, почему тогда блок POST не выдает содержание, а просто пустоту?
 
Вы пытаетесь картинку запостить в свой аккаунт? попробую сейчас сам сделать)) что то вы меня заинтриговали)))
 
Там на c# не выдавал содержимое post (я так отлаживаю), а так данные выдавались, то есть все работает.
ТАкая вот гора вышла:http://gyazo.com/afdd1e39c0f4502cd087106e7f8bc083
А хотелось обещанной компактности чз c# instance.cookie. Кто может проверить рабочесть метода и выложить пример как его юзать?
 
А елки))) как раз я уже половину написал))))) я пробовал через GetCookie что то у меня не получилось, поэтому я решил что лучше старый, но проверенный костыль)))
 
Посмотреть вложение фотострана.xmlz А ладно) выложу все равно))) вдруг кто искать будет как это сделать, а то на форуме все есть, но хрен найдешь))))
c# кода по работе с куками инстанса нет.
Зато есть пост и гет запросы)))) Я так понима много кому интересно как они работают)
 
У вас отличие, вы подклеивали куки2 к кукам 1, а я выпарсивал куку до входа и после и последней уже пользовался (такой метод тоже выходит работает).
 
Я просто когда снифал - увидел что первые куки тоже отправляются ну и решил не придумывать велосипед))))
 
Теперь другая задача, как после авторизации POST, передать куки в инстанс и начать работать внутри сайта, посредством обычных замакросенных действий?
 
Новая проблема, на нескольких сайтах все нормально работает. А на другом после логина и переброса кук в новое действие, скажем на get, выбрасывает на авторизацию, в чем может быть проблема? Нет рефферера? Не нашел где zenno post/get...
 
Как передать referer в post и get ?
 
Через действия никак, можно через C# макрос.
Для Get запроса
JavaScript:
Развернуть Свернуть Копировать
return ZennoPoster.HttpGet("http://www.whatismyreferer.com/", AdditionalHeaders: new [] {"Referer: http://www.zennolab.com/"});
для POST аналогично.
 
нарыл новый способ для получения куков через гет запросы бес использования браузера. Сперва надо на локальный компьютер или на удалённый сервер установить denwer с разрешением curl, потом на сервер ставим вот такой php код:
<?php
$get_cookie_page = 'http://google.com';
echo curl_download($get_cookie_page);

function curl_download($Url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
$http_headers = array(
'Host: www.google.com',
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2',
'Accept: */*',
'Accept-Language: en-us,en;q=0.5',
'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
'Connection: keep-alive'
);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
?>

А уже потом когда получили куки через гет запрос можно и спокойно взять и использовать как угодно. Надеюсь инфа кому то поможет, это только идея...
 
нарыл новый способ для получения куков через гет запросы бес использования браузера. Сперва надо на локальный компьютер или на удалённый сервер установить denwer с разрешением curl, потом на сервер ставим вот такой php код:
<?php
$get_cookie_page = 'http://google.com';
echo curl_download($get_cookie_page);

function curl_download($Url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
$http_headers = array(
'Host: www.google.com',
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2',
'Accept: */*',
'Accept-Language: en-us,en;q=0.5',
'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
'Connection: keep-alive'
);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
?>

А уже потом когда получили куки через гет запрос можно и спокойно взять и использовать как угодно. Надеюсь инфа кому то поможет, это только идея...
А через с# кубик методом getcooke,не судьба,зачем мудрить?
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)