Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
HTTPS POST PHP вопрос
Новая тема
Ответить
цитата
29/05/10 в 19:08
FXIX
Кто знает в чем тонкий момент отправки 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)
цитата
29/05/10 в 19:17
Pentarh
curl тебе в помощь
цитата
29/05/10 в 19:43
FXIX
Pentarh:
курл само собой. Хотелось бы "в явном виде" написать.
должно быть просто:
http://code.google.com/intl/ru/apis/blogger/docs/2.0/developers_gui lientLogin
http://code.google.com/intl/ru/apis/accounts/docs/AuthForInstalledApps.html#Request
цитата
29/05/10 в 21:05
Pentarh
дык а че отдает то конкретно?
цитата
29/05/10 в 23:03
FXIX
да ничего не отдает. заголовки собираются сокет создается далее на строке
while($in=fgets($connect,2048)) висяк и дебагер умирает. минуты 2 страница грузится и далее пустая страница
целый день голову ломаю, гугель тоже не нагугливается
цитата
30/05/10 в 00:53
Cook
хочешь заняться чем то интересным так изучи протокол, и общайся сколько влезет, а не хочешь так используй curl
разницы в ПОСТе нет никакой при хттп и хттпс
цитата
30/05/10 в 01:50
Pentarh
простокол HTTPS эмулируй тогда сам со всеми OpenSSL заморочками. Он посложнее ХТТП будет.
или .... curl тебе в помощь
цитата
30/05/10 в 11:18
Dr.Syshalt
FXIX писал:
целый день голову ломаю, гугель тоже не нагугливается
Плохо гуглил, значит - иначе бы знал, что HTTPS - это не просто POST. Там сначала идет хэндшейкинг, обмен сертификатами. И только потом - обмен данными.
Зачем так все сложно? Думаешь, будет быстрее работать?
цитата
30/05/10 в 11:48
lega_cobra
Dr.Syshalt писал:
Плохо гуглил, значит - иначе бы знал, что HTTPS - это не просто POST. Там сначала идет хэндшейкинг, обмен сертификатами. И только потом - обмен данными.
Там в коде есть ssl://
TC: Попробуй tls:
цитата
30/05/10 в 13:16
FXIX
Всем спасибо, вопрос решился. Перевод строк в формате \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;
цитата
30/05/10 в 13:28
FXIX
напиздел. удалось реализовать.
Цитата:
$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
цитата
30/05/10 в 19:24
Noobus Boobus
Чего только люди не сделают, лишь бы стандартные средства не использовать...
Новая тема
Ответить
Эта страница в полной версии