Это лучший способ сделать запрос API с использованием PHP CURL? - PullRequest
1 голос
/ 16 июня 2009

У меня есть сайт с простым API, который можно использовать через http. Я хочу использовать API и отправлять данные 1000-1500 раз за один раз. Вот их API: http://api.jum.name/

Я создал URL для отправки, но теперь мне интересно, как лучше всего выполнить эти 1000-1500 запросов API GET? Вот реализация PHP CURL, о которой я думал:

$add = 'http://www.mysite.com/3rdparty/API/api.php?fn=post&username=test&password=tester&url=http://google.com&category=21&title=story a&content=content text&tags=Season,news';
curl_setopt ($ch, CURLOPT_URL, "$add");
curl_setopt ($ch, CURLOPT_POST, 0);
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'files/cookie.txt');
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
$postdata = curl_exec ($ch);

Должен ли я закрывать соединение CURL каждый раз, когда отправляю заявку? Могу ли я переписать вышеупомянутое, чтобы сделать эти 1000-1500 заявок быстрее?

Спасибо всем

Ответы [ 2 ]

3 голосов
/ 16 июня 2009

Если у вас есть доступ к php 5.2+, я очень рекомендую php's curl_multi.

Это позволяет вам обрабатывать несколько запросов curl параллельно, что в этом случае определенно пригодится.

Сопутствующая документация: http://us3.php.net/manual/en/ref.curl.php
Пример использования: http://www.somacon.com/p537.php

1 голос
/ 16 июня 2009

PHP curl по умолчанию повторно использует соединение для нескольких вызовов curl_exec ().

Таким образом, в этом случае вы просто ругаете дескриптор curl, полученный с помощью curl_init, и если URL-адрес совпадает между вызовами curl_exec (), он отправляет заголовок «Connection: keep-alive» и повторно использует соединение.

Не закрывать соединение и не устанавливать CURLOPT_FORBID_REUSE

также см. Здесь:

Постоянный / keepalive HTTP с библиотекой PHP Curl?

...