Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 29/05/10 в 19:08 |
Кто знает в чем тонкий момент отправки POST-запроса на HTTPS?
Код: [развернуть] |
$username='логин';
$password='пароль';
$data=urlencode(
"accountType=HOSTED_OR_GOOGLE
&Email=$username
&Passwd=$password
&source=CoExample
&service=blogger");
$header ='POST /accounts/ClientLogin HTTP/1.1\n';
$header.='Host: google.com\n';
$header.='Content-Type: application/x-www-form-urlencoded\n';
$header.='Content-Length: '.strlen($data).'\n\n';
$header.=$data.'\n\n';
$connect=fsockopen('ssl://www.google.com', 443, $errno, $errstr) or die ($errno.' : '.$errstr);
$out=fwrite($connect,$header);
while($in=fgets($connect,2048)) {
echo $in;
}
fclose ($connect);
|
не работает. (скрипт подключается к хосту https://www.google.com/accounts/ClientLogin отдает логин\пароль\прочую хуйню и возвращает SID, LSID, Auth)
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 29/05/10 в 19:17 |
curl тебе в помощь
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 29/05/10 в 19:43 |
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 29/05/10 в 21:05 |
дык а че отдает то конкретно?
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 29/05/10 в 23:03 |
да ничего не отдает. заголовки собираются сокет создается далее на строке
while($in=fgets($connect,2048)) висяк и дебагер умирает. минуты 2 страница грузится и далее пустая страница
целый день голову ломаю, гугель тоже не нагугливается
|
|
|
|
С нами с 05.12.99
Сообщения: 342
Рейтинг: 323
|
Добавлено: 30/05/10 в 00:53 |
хочешь заняться чем то интересным так изучи протокол, и общайся сколько влезет, а не хочешь так используй curl
разницы в ПОСТе нет никакой при хттп и хттпс
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 30/05/10 в 01:50 |
простокол HTTPS эмулируй тогда сам со всеми OpenSSL заморочками. Он посложнее ХТТП будет.
или .... curl тебе в помощь
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 30/05/10 в 11:18 |
FXIX писал: |
целый день голову ломаю, гугель тоже не нагугливается |
Плохо гуглил, значит - иначе бы знал, что HTTPS - это не просто POST. Там сначала идет хэндшейкинг, обмен сертификатами. И только потом - обмен данными.
Зачем так все сложно? Думаешь, будет быстрее работать?
|
|
|
|
С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144
|
Добавлено: 30/05/10 в 11:48 |
Dr.Syshalt писал: | Плохо гуглил, значит - иначе бы знал, что HTTPS - это не просто POST. Там сначала идет хэндшейкинг, обмен сертификатами. И только потом - обмен данными. |
Там в коде есть ssl://
TC: Попробуй tls:
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 30/05/10 в 13:16 |
Всем спасибо, вопрос решился. Перевод строк в формате \n работает только в двойных кавычках. Если одинарные кавычки, то юзать chr(10). Но все равно авторизоваться не смог.
Цитата: |
HTTP/1.1
403 Forbidden
Content-Type: text/plain
Cache-control: no-cache, no-store
Pragma: no-cache
Expires: Mon, 01-Jan-1990 00:00:00 GMT
Date: Sun, 30 May 2010 09:28:52 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Length: 24
Server: GSE
Connection: close
Error=BadAuthentication
|
ну а на курле вот
Код: [развернуть] |
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = array(
'accountType' => 'HOSTED_OR_GOOGLE',
'Email' => $username,
'Passwd' => $password,
'source'=>'PHI-cUrl-Example',
'service'=>'blogger');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$hasil = curl_exec($ch);
echo $hasil;
|
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 30/05/10 в 13:28 |
напиздел. удалось реализовать.
Цитата: |
$data="accountType=HOSTED_OR_GOOGLE&Email=мыло&Passwd=пароль&source=PHI-cUrl-Example&service=blogger";
$header ="POST /accounts/ClientLogin HTTP/1.1\n";
$header.="Host: google.com\n";
$header.="Content-Type: application/x-www-form-urlencoded\n";
$header.='Content-Length: '.strlen($data)."\n\n";
$header.=$data."\n\n";
$connect=fsockopen('ssl://www.google.com', 443, $errno, $errstr) or die ($errno.' : '.$errstr);
$out=fputs($connect,$header);
while($in=fgets($connect,2048)) {
echo $in;
}
fclose ($connect);
|
Цитата: |
HTTP/1.1 200 OK
Content-Type: text/plain
Cache-control: no-cache, no-store
Pragma: no-cache
Expires: Mon, 01-Jan-1990 00:00:00 GMT
Date: Sun, 30 May 2010 10:20:28 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Length: 563
Server: GSE
SID=DQAAAHYAAABXRKVoC_S3vM9vdvzwv2NlpqoMLOxK0paGAirUm_BFMFkFsRCXWUQ7nSkBuTWS49DyR4Y71jKMJpY849ZokiuKPyfb7VEqNdINQatDmxKgGp72p_OfIjoUq-5grmkCCxPTgClszozIPAxHOv6frHn4XVj-W06blVGVOq-GnxiBfQ
LSID=DQAAAHgAAABN9Pf0leawTBBEzzexaajLO-oVQ0KAhnqyI9Hy6ReubHW6StkZfGsc-xbd5ElWw7uvo-7AoaahoPWtaczmNhuiQuVSBJRx1yqFkdK42REkg7ZrbEC9fiLDx4pPy_1Wd3FsUkLZQN3G9wxBkfTf2SZSnRXe8-7I3zjFRVPso3aWyw
Auth=DQAAAHkAAABN9Pf0leawTBBEzzexaajLO-oVQ0KAhnqyI9Hy6ReubHW6StkZfGsc-xbd5ElWw7u6iDXfV4POm3fkENkWgQJ9W6DWjM8lpaMphnLVh6pKQpCduPDE0SRJbsfyid2B7UZPIb3qs5zucYCrzNmcmTQaJXhmWXp3LuAuS9tMPPHaqQ
|
|
|
|
|
С нами с 16.10.09
Сообщения: 343
Рейтинг: 419
|
Добавлено: 30/05/10 в 19:24 |
Чего только люди не сделают, лишь бы стандартные средства не использовать...
|
|
|
|