| <?php | |
| namespace p3k; | |
| 
 | |
| class HTTP { | |
| 
 | |
|   public $timeout = 4; | |
|   public $max_redirects = 8; | |
| 
 | |
|   public function get($url, $headers=[]) { | |
|     $class = $this->_class($url); | |
|     $http = new $class($url); | |
|     $http->timeout = $this->timeout; | |
|     $http->max_redirects = $this->max_redirects; | |
|     return $http->get($url, $headers); | |
|   } | |
| 
 | |
|   public function post($url, $body, $headers=[]) { | |
|     $class = $this->_class($url); | |
|     $http = new $class($url); | |
|     $http->timeout = $this->timeout; | |
|     $http->max_redirects = $this->max_redirects; | |
|     return $http->post($url, $body, $headers); | |
|   } | |
| 
 | |
|   public function head($url) { | |
|     $class = $this->_class($url); | |
|     $http = new $class($url); | |
|     $http->timeout = $this->timeout; | |
|     $http->max_redirects = $this->max_redirects; | |
|     return $http->head($url); | |
|   } | |
| 
 | |
|   private function _class($url) { | |
|     if(!should_follow_redirects($url)) { | |
|       return 'p3k\HTTPStream'; | |
|     } else { | |
|       return 'p3k\HTTPCurl'; | |
|     } | |
|   } | |
| 
 | |
|   public static function link_rels($header_array) { | |
|     $headers = ''; | |
|     foreach($header_array as $k=>$header) { | |
|       if(is_string($header)) { | |
|         $headers .= $k . ': ' . $header . "\r\n"; | |
|       } else { | |
|         foreach($header as $h) { | |
|           $headers .= $k . ': ' . $h . "\r\n"; | |
|         } | |
|       } | |
|     } | |
|     $rels = \IndieWeb\http_rels($headers); | |
|     return $rels; | |
|   } | |
| 
 | |
| }
 |