Я создаю приложение для автоматического повторного выставления счетов.
Пожалуйста, дайте мне знать, какой вариант я должен выбрать для отправки запроса на сервер
и почему один лучше другого?
я бы порекомендовал вам завиток из-за настраиваемых параметров. например, ssl
Я бы рекомендовал использовать контексты потока PHP со встроенными функциями: http://us3.php.net/manual/en/book.stream.php . Полная функциональность HTTP / S и прекрасно интегрируется с функциями fopen
/ file_get_contents
. Вы можете (например) сделать POST следующим образом:
$chunk = file_get_contents("https://graph.facebook.com/oauth/access_token?client_id=".FACEBOOK_APP_ID."&client_secret=".FACEBOOK_SECRET."&grant_type=client_credentials"); if($request_ids && $chunk){ $cookie = explode('=', $chunk); if(count($cookie) == 2) $cookie = $cookie[1]; else $cookie = $cookie[0]; // flush it foreach($request_ids as $request_id){ $context = stream_context_create(array('http' => array('method' => 'POST', 'content' => 'method=DELETE', 'user_agent' => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)", 'max_redirects' => 0))); @file_get_contents('https://graph.facebook.com/' . $request_id . '?access_token=' . $cookie, false, $context); } }
Этот код регистрируется в Facebook, извлекает токен входа в приложение и затем использует защищенный HTTP POST для удаления нескольких объектов с помощью API-интерфейса графика.
Если вам нужно делать более интересные вещи, вы также можете.
$context = stream_context_create(array('http' => array( // set HTTP method 'method' => 'GET', 'user_agent' => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)", 'max_redirects' => 0))); // extract the cookies $fp = fopen(URL, "r", false, $context); $meta = stream_get_meta_data($fp); $headers = $metadata['wrapper_data']; fclose($fp);
Будет ли журнал Выведет заголовки, возвращенные URL-адресом. Никаких внешних библиотек не требуется.
Ни. Не прямо, я имею в виду.
Написание и разбор HTTP-заголовков поверх голого металла сокета является безумным , и я считаю API-интерфейс curl абсолютно откровенным.
Взгляните на HTTP_Request2 PEAR, возможно , он даже установлен на вашем компьютере. А если нет, вы можете просто связать его с вашим кодом – это лицензия BSD. Он обматывает либо сокеты, либо завитки , и обеспечивает относительно разумный HTTP-интерфейс.
Используйте Curl, когда вам нужно обрабатывать протокол HTTP и сокет, когда вам нужен более общий доступ к серверу без http.
Я изучаю это прямо сейчас и наткнулся на следующую страницу, которая дает код для тестирования различных опций и создания выходных скоростей. Очень интересно.
http://www.hashbangcode.com/blog/quickest-way-download-web-page-php