/** * */ public function testGetRequest() { $http = new dHttp\Client('http://php.net'); $resp = $http->get([CURLOPT_HEADER => true]); self::assertInstanceOf('dHttp\\Response', $resp); self::assertEquals($resp->getCode(), 200); self::assertInternalType('array', $resp->getHeaders()); self::assertInternalType('string', $resp->getHeader('Content-Type')); self::assertEquals('text/html; charset=utf-8', $resp->getHeader('Content-Type')); }
<?php /** * dHttp is library to work with Curl * Example to use library */ include_once 'src/Client.php'; include_once 'src/Response.php'; $http = new dHttp\Client('http://website.com', [CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1', CURLOPT_TIMEOUT => 5, CURLOPT_HEADER => true]); /* * Simple get request */ $resp = $http->get(); // Get response code $resp->getCode(); // Get response body $resp->getBody(); // Get request errors $resp->getErrors(); /* * Simple post request */ $resp = $http->post(['field1' => 'value1', 'field2' => 'value2']); $resp->getRaw(); // Return response headers $resp->getHeaders(); // Return a specific (text/html; charset=utf-8) $resp->getHeader('Content-Type'); /** * Another way of setting. * Output response
$xmlString = file_get_contents('http://www.billboard.com/rss/charts/hot-100'); $cache->set('top', $xmlString, 0, 8600); } $xml = new SimpleXMLElement($xmlString); $results = $xml->channel[0]->item; $app->render('layout.php', ['page' => 'main', 'results' => $results]); }); // Search route $app->get('/:query.html', function ($query) use($app) { $query = urlclean($query); // Save request $client = new \Sokil\Mongo\Client(MONGO_DSN); $collection = $client->getDatabase(MONGO_DBNAME)->getCollection(MONGO_COLLECTION); if (!$collection->find(['request' => $query])->count()) { $collection->insert(['request' => $query, 'created' => new MongoDate(), 'views' => 1]); } else { $collection->getMongoCollection()->update(['request' => $query], ['$inc' => ['views' => 1]]); } // Search from Vk or memcache $cache = new memcache(); $cache->connect('localhost'); // Поиск в ВК и отправка пользователю if (($results = $cache->get($query)) === false) { // Search from Vk or memcache $http = new dHttp\Client('https://api.vk.com/method/audio.search.json?access_token=096fb2d19fc28da6694e9db15f47ff9561c36628f5485fbcd642f7edc6185ea413ab2f2fa4a5c1789cb79&q=' . urlencode($query)); $results = json_decode($http->get()->getBody(), true); $cache->set($query, json_decode($http->get()->getBody(), true), 0, 72000); } $app->render('layout.php', ['page' => 'search', 'results' => $results, 'query' => $query]); })->conditions(['query' => '.+']); $app->run();