JavaFXでサーバーと接続して、受信したデータを処理するプログラムを組んでいます。
サーバーは、Azure WebアプリのStandard: 1 Sプランを利用しています。
サーバーへTESTとPOSTします。
String returnValues = executePost("TEST");
test.phpは送信された値がTESTの場合は、指定のデータベースより一番新しい値を取得して、echoにて表示します。
(データベースは違うプログラムより常時更新しています。)
returnValuesにサーバーより受信したデータが入るので、そのデータによって指定の処理を行います(SeleniumのGoogle Chromeのあるサイト内のボタンをクリック)。
スレッド内にて0.01秒おきにexecutePostメゾッドを実行しています。
ですが、たまに1秒ほど指定の処理(サイト内をクリック)が遅れます。
回線の問題やパソコンのスペックの問題もあるかと思いますが、下記のexecutepost処理の最適化が可能でしたら、ご教授して頂けますと幸いです。
また、スレッドで数秒おきに処理をするプログラムにおいて、何か注意点等がありましたら教えて頂けますと幸いです。
よろしくお願い致します。
Java
1 private static String executePost(String Values) { 2 String line = ""; 3 4 try { 5 URL url = new URL("http://xxxx.azurewebsites.net/test.php"); // Admin 6 HttpURLConnection connection = null; 7 8 try { 9 connection = (HttpURLConnection) url.openConnection(); 10 connection.setDoOutput(true); 11 connection.setUseCaches(false); 12 //connection.setChunkedStreamingMode(0); 13 connection.setRequestMethod("POST"); 14 15 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream(), StandardCharsets.UTF_8)); 16 writer.write("value="); 17 writer.write(Values); // 本来は左のValuesの値が送信される 18 writer.flush(); 19 20 if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { 21 try (InputStreamReader isr = new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8); 22 BufferedReader reader = new BufferedReader(isr)) { 23 line = reader.readLine(); 24 } 25 } 26 } finally { 27 if (connection != null) { 28 connection.disconnect(); 29 } 30 } 31 } catch (IOException e) { 32 e.printStackTrace(); 33 System.exit(1); 34 } 35 36 return line; 37 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。