import java.io.*; import java.net.*; public class PostRun extends RunningThread { private String m_cgi; private String m_query; private boolean m_result_of_running; private float m_rate; private String m_result; public PostRun(String cgi,String query) { m_cgi = cgi; m_query = query; m_rate = 0; m_result_of_running = false; } public boolean Alive() { return isAlive(); } public String getResult() { return m_result; } public float getRate() { return m_rate; } public void setRate(float rate) { m_rate = rate; } public long getSize() { if(m_result != null) return (long)(m_result.length()); else return 0; } public void run() { URL url; URLConnection connection; String encodeddata = "result=" + URLEncoder.encode(m_query); String result = new String(); try { url = new URL(m_cgi); connection = url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); PrintWriter outStream = new PrintWriter(connection.getOutputStream()); BufferedReader br = new BufferedReader( new InputStreamReader(connection.getInputStream())); DataInputStream inStream = new DataInputStream(connection.getInputStream()); outStream.println(encodeddata); outStream.close(); String s; while((s=br.readLine()) != null) { //yield(); result = result + s +"\n"; } br.close(); m_result_of_running = true; m_result = result; } catch (Exception e) { System.out.println(e); m_result_of_running = false; m_result = null; stop(); } } public void tick(Timer t) { stop(); System.out.println("Stoped"); } }