2011-12-29 87 views
0

我想定期發送包括圖片到一個網站的發佈請求。它第一次工作,但後來stucks。我究竟做錯了什麼?Java進程不退出

p = r.exec("curl --form api_key=<key> --form api_secret=<secret> " 
      + "--form [email protected] -m 20 " 
      + "http://api.face.com/faces/detect.json"); 

BufferedReader br = 
     new BufferedReader(new InputStreamReader(p.getInputStream())); 

String line = "", text = ""; 

while ((line = br.readLine()) != null) { 
    text += line + System.getProperty("line.separator"); 
} 

System.out.println(text); 
+0

似乎你忘記關閉你的BufferedReader了。我不知道這是否會解決您的問題,但是將流打開可能會導致其他一些錯誤。 – 2011-12-29 13:34:30

回答

0

我的猜測是它打印出一個你看不見的錯誤。 (我建議你使用ProcessBuilder將錯誤消息重定向到標準輸出)或者進程處於掛起狀態。

0

嘗試在執行新請求之前刷新並關閉bufferedReader。我從來沒有使用捲曲,但是可能是因爲你必須等到整個過程完成才能運行新捲曲?

+0

你真的幫了我很多。錯誤是使用Runtime.exec和BufferedReader。我切換到ProcessBuilder和InputStream。現在一切都很好。謝謝你們。 – jarCrack 2011-12-29 20:24:13