2011-12-29 56 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