0

php Webサーバーページからhttp応答を取得するために、以下に示すコーディングがあります。

public static void stopPHPDataChecker() {      
        canStop=true;
}

public static void main (String args[]) {
    // http request to the php page and get the response
    PHPDataChecker pdc = new PHPDataChecker();
    ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    final ScheduledFuture<?> pdcHandle = scheduler.scheduleAtFixedRate(pdc, 0L, 10L, TimeUnit.MILLISECONDS);// Start schedule
    scheduler.schedule(new Runnable() {

        public void run() {
            System.out.println(">> TRY TO STOP!!!");
            pdcHandle.cancel(true);
            Sheduler.stopPHPDataChecker();
            System.out.println("DONE");
        }

    }, 1L, TimeUnit.MILLISECONDS);

   do {
        if (canStop) {
            scheduler.shutdown();

        }
    } while (!canStop);

    System.out.println("END");
}

このコーディングは1つの応答のみを返しますが、戻り値に応じてさまざまなタスクを実行できるように、応答を継続的に取得する必要があります。どうすればいいですか?前もって感謝します :)

4

3 に答える 3

0

回答を受け取るには、リクエストを投稿する必要があります...

毎回 !

リクエストポストを定期的なループに入れます。

于 2012-10-21T07:57:17.693 に答える
0
Sheduler.stopPHPDataChecker();

runメソッド内でcanStop=trueになり、

if (canStop) {
    scheduler.shutdown();

}

スケジューラをシャットダウンします。runメソッドからstopPHP..メソッドを削除すると、これが解決されます。コードをリファクタリングしている可能性があります。混乱しているように見えます。

于 2012-10-21T04:53:55.977 に答える
0

-私の簡単な提案は、スレッドを使用することです。スレッドは、一定の時間間隔の後にWebサービスに要求を送信し、応答を受信します。

    Thread t = new Thread(new Runnable(){

          public void run(){

   while(isDone){  

             //isDone is the boolean variable which will help u end the Thread.

            // SEND THE REQUEST 

try{

  Thread.sleep(5000);   // Delay of 5 seconds before the request is fired again

   }catch(Exception ex){

           ex.printStackTrace();

        }
    }
   }

    });

 t.start();

 t.join();   // Use join() to block the process further till the response arrives.
于 2012-10-21T05:11:19.617 に答える