Как повторить пост запрос ?

Discussion in 'Болталка' started by Axeee, 14 Feb 2012.

  1. Axeee

    Axeee Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    286
    Likes Received:
    15
    Reputations:
    0
    Есть список пост запросов, есть ссылка куда их посылать, как сделать так, чтобы каждый пост запрос из списка, по очереди поступил на эту ссылку ?

    на пхп еслиб ктонибудь написал такой скрипт, я был бы сильно благодарен
     
    #1 Axeee, 14 Feb 2012
    Last edited: 14 Feb 2012
  2. N@b$ter

    N@b$ter Elder - Старейшина

    Joined:
    6 Oct 2009
    Messages:
    290
    Likes Received:
    70
    Reputations:
    21
    курл в помощь. Я делал, но у меня запросы были одинаковы кроме 2 параметров
     
  3. DJ4J

    DJ4J Member

    Joined:
    23 Aug 2009
    Messages:
    2
    Likes Received:
    53
    Reputations:
    1
    Раздел не тот.
    Ну используй sleep() что-ли.Или, к примеру:
    If <запрос>
    {
    if <запрос2>
    {
    if <запрос 3>

    и т.д.Условие выполнится только тогда, когда пройдет запрос.Надеюсь, я так понял вопрос.
     
  4. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    PHP:
    <?php

    $url 
    "http://site.ru"//ссылка

    $file=file("fields.txt"); //файл с запросами вида test=1&fap=100500

    foreach($file as $f){

    $ch curl_init();
    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_POST1); //будет POST
    curl_setopt($chCURLOPT_HEADER0);
    curl_setopt($chCURLOPT_POSTFIELDS$f);
    curl_exec($ch);
    curl_close($ch);

    }

    ?>
     
  5. Axeee

    Axeee Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    286
    Likes Received:
    15
    Reputations:
    0
    daniel777 огромное спасибо
     
  6. Axeee

    Axeee Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    286
    Likes Received:
    15
    Reputations:
    0
    извиняюсь за неграмотность в пхп, но как понять строку:

    curl_setopt($ch, CURLOPT_POST, 1); //будет POST

    а именно 1
    ..и с какой скоростью будут перебираться пост запросы из списка ?
     
  7. N@b$ter

    N@b$ter Elder - Старейшина

    Joined:
    6 Oct 2009
    Messages:
    290
    Likes Received:
    70
    Reputations:
    21
    а зачем менять? запросы будут идти в один поток
     
  8. Axeee

    Axeee Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    286
    Likes Received:
    15
    Reputations:
    0
    а как увеличить потоки в данном случае ?
     
  9. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Эта строка означает что будет использоватся метод POST, а не GET.

    Запросы будут перебиратся в один поток, как только закончится первый, за ним идет сразу второй.
     
  10. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    В РНР нету многопоточности, можно только её эмулировать. Если это так нужно, то гугли multi curl.
     
  11. Axeee

    Axeee Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    286
    Likes Received:
    15
    Reputations:
    0
    значит все будет зависеть от скорость сервера и интернета, на котором будет располагаться данный скрипт, я правильно понял ?
     
  12. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Именно так.
     
  13. Axeee

    Axeee Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    286
    Likes Received:
    15
    Reputations:
    0
    а как будет выглядеть скрипт, чтобы при получении определенного ответа появлялось сообщение и останавливалась посылка пост запросов ?
     
  14. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Вроде бы так:
    PHP:
    <?php

    $url 
    "http://site.ru"//ссылка
    $file=file("fields.txt"); //файл с запросами вида test=1&fap=100500

    $otvet "";//нужный ответ

    foreach($file as $f){

    $ch curl_init();
    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_POST1); //будет POST
    curl_setopt($chCURLOPT_HEADER0);
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_POSTFIELDS$f);
    $res=curl_exec($ch);
    curl_close($ch);

    if(
    $res==$otvet){
    break;
    }

    }

    ?>
     
  15. Axeee

    Axeee Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    286
    Likes Received:
    15
    Reputations:
    0
    ..только что залил данный пхп на хост, попробовал, начало грузить, затем все остановилось (через секунд 30) и выдало: "Соединение было сброшено"

    ..запросов у меня несколько тысяч и они все в столбик
     
    #15 Axeee, 14 Feb 2012
    Last edited: 14 Feb 2012
  16. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    937
    Likes Received:
    355
    Reputations:
    58
    set_time_limit(0);
    Может правильней использовать CURLOPT_HEADER, 1
    if (strchr($res, "200 OK"))
    break; ?
     
    #16 Skofield, 14 Feb 2012
    Last edited: 14 Feb 2012
  17. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Допиши в начале скрипта set_time_limit(0);
     
  18. Axeee

    Axeee Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    286
    Likes Received:
    15
    Reputations:
    0
    та же проблема :(

    грузит грузит и потом соединение сбрасывается :(

    проблема может быть из за большого количества пост запросов ?
     
    #18 Axeee, 14 Feb 2012
    Last edited: 14 Feb 2012
  19. Axeee

    Axeee Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    286
    Likes Received:
    15
    Reputations:
    0
    вот, что выдает

    [​IMG]
     
  20. оlbaneс

    оlbaneс Moderator

    Joined:
    5 Nov 2007
    Messages:
    1,362
    Likes Received:
    1,041
    Reputations:
    356
    походу ты его заддосил ) сделай паузу между запросами
     
    _________________________