Сделать запрос HTTPS через PHP и получить ответ

Я хочу сделать HTTPS-запрос через PHP на сервер и получить ответ.

что-то похожее на этот рубиновый код

http = Net::HTTP.new("www.example.com", 443) http.use_ssl = true path = "uri" resp, data = http.get(path, nil) 

благодаря

это может сработать, дать ему шанс.

  $ ch = curl_init ();
 curl_setopt ($ ch, CURLOPT_URL, $ url);
 // Устанавливаем так, чтобы curl_exec возвращал результат, а не выводил его.
 curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);
 // Получить ответ и закрыть канал.
 $ response = curl_exec ($ ch);
 curl_close ($ ч);

для получения дополнительной информации, проверьте http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

Zend Framework имеет приятный компонент Zend_Http_Client, который идеально подходит для такого рода транзакций.

Под капотом он использует завиток, чтобы делать запросы, но вы обнаружите, что Zend_Http_Client имеет гораздо более удобный интерфейс для работы и проще настроить, когда вы хотите добавлять собственные заголовки или работать с ответами.

Если все, что вы хотите сделать, это получить содержимое страницы с минимальной работой, вы можете сделать следующее, в зависимости от конфигурации вашего сервера:

 $data = file_get_contents('https://www.example.com/'); 

Пример использования HttpRequest для публикации данных и получения ответа:

 <?php //set up variables $theData = '<?xml version="1.0"?> <note> <to>my brother</to> <from>me</from> <heading>hello</heading> <body>this is my body</body> </note>'; $url = 'http://www.example.com'; $credentials = 'user@example.com:password'; $header_array = array('Expect' => '', 'From' => 'User A'); $ssl_array = array('version' => SSL_VERSION_SSLv3); $options = array(headers => $header_array, httpauth => $credentials, httpauthtype => HTTP_AUTH_BASIC, protocol => HTTP_VERSION_1_1, ssl => $ssl_array); //create the httprequest object $httpRequest_OBJ = new httpRequest($url, HTTP_METH_POST, $options); //add the content type $httpRequest_OBJ->setContentType = 'Content-Type: text/xml'; //add the raw post data $httpRequest_OBJ->setRawPostData ($theData); //send the http request $result = $httpRequest_OBJ->send(); //print out the result echo "<pre>"; print_r($result); echo "</pre>"; ?> 

Есть два примера метода GET и метода POST

Пример GET:

 <?php $r = new HttpRequest('http://example.com/feed.rss', HttpRequest::METH_GET); $r->setOptions(array('lastmodified' => filemtime('local.rss'))); $r->addQueryData(array('category' => 3)); try { $r->send(); if ($r->getResponseCode() == 200) { file_put_contents('local.rss', $r->getResponseBody()); } } catch (HttpException $ex) { echo $ex; } ?> 

Пример публикации

 <?php $r = new HttpRequest('http://example.com/form.php', HttpRequest::METH_POST); $r->setOptions(array('cookies' => array('lang' => 'de'))); $r->addPostFields(array('user' => 'mike', 'pass' => 's3c|r3t')); $r->addPostFile('image', 'profile.jpg', 'image/jpeg'); try { echo $r->send()->getBody(); } catch (HttpException $ex) { echo $ex; } ?>