HTTPS Post Request через PHP и Cookies - PullRequest
       10

HTTPS Post Request через PHP и Cookies

1 голос
/ 20 августа 2010

Я немного новичок в PHP, однако раньше я использовал JSP (у меня достаточно информации), и с классами Java все было проще.Итак, теперь я хочу выполнить запрос POST на странице HTTPS (не HTTP), и мне нужно получить возвращенные файлы cookie и передать их другому запросу GET и вернуть окончательный результат.Цель состоит в том, чтобы сделать тяжелую страницу для мобильных телефонов более совместимой для просмотра в мобильном браузере, минуя страницу входа в систему и непосредственно переходя на страницы, которые также обслуживаются в пользовательском интерфейсе ajax.Я застрял, мой код не работает, он говорит, что это неверный запрос.

Неправильный запрос

Ваш браузер отправил запрос, который этот сервер не может понять.Причина: вы говорите обычным HTTP с портом сервера с поддержкой SSL.Вместо этого используйте схему HTTPS для доступа к этому URL, пожалуйста.

<?php
$content = '';
$flag = false;
$post_query = 'SOME QUERY'; // name-value pairs
$post_query = urlencode($post_query) . "\r\n";
$host = 'HOST';
$path = 'PATH';
$fp = fsockopen($host, '443');

if ($fp) {
fputs($fp, "POST $path HTTP/1.0\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Content-length: ". strlen($post_query) ."\r\n\r\n");
fputs($fp, $post_query);
while (!feof($fp)) {
$line = fgets($fp, 10240);
if ($flag) {
$content .= $line;
} else {
$headers .= $line;
if (strlen(trim($line)) == 0) {
$flag = true;
}
}
}
fclose($fp);
}
echo $headers;
echo $content;
?>

1 Ответ

0 голосов
/ 20 августа 2010

Из прошлого опыта я никогда не использовал внутренние функции PHP, такие как fsocketopen(), для публикации внешних данных. Лучший способ выполнить эти действия - использовать CURL, который дает гораздо больше простоты и значительно более эффективен для разработчиков.

например, посмотрите на эти функции http://php.net/curl_setopt

и посмотрите на файл с URL, POST, POSTDATA и COOKIESFILES, предназначенный для .JAR, который вы затем получаете и который можете использовать file_get_contents() для отправки данных с помощью GET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...