Я создаю приложение для автоматического повторного выставления счетов.
Пожалуйста, дайте мне знать, какой вариант я должен выбрать для отправки запроса на сервер
- fsockeopen
- завиток
и почему один лучше другого?
Я создаю приложение для автоматического повторного выставления счетов.
Пожалуйста, дайте мне знать, какой вариант я должен выбрать для отправки запроса на сервер
и почему один лучше другого?
Я бы порекомендовал вам завиток из-за настраиваемых параметров. например 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-интерфейса Graph.
Если вам нужно делать более причудливые вещи, вы тоже можете.
$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-заголовков поверх голого металла сокета сумасшедшие, и я считаю, что curl API является совершенно оскорбительным.
Взгляните на PEAR HTTP_Request2, возможно, он даже установлен на вашем компьютере. А если нет, вы можете просто связать его с кодом - он лицензирован BSD. Он обертывает или сокеты или завиток, и обеспечивает относительно разумный HTTP-интерфейс.
Используйте Curl, когда вам нужно обрабатывать протокол HTTP и сокет, когда вам нужен более общий доступ к серверу без http.
Я изучаю это прямо сейчас и наткнулся на следующую страницу, которая дает код для тестирования различных параметров и создания выходных скоростей. Очень интересно.
http://www.hashbangcode.com/blog/quickest-way-download-web-page-php