我正在创建一个Server HealthCheck页面.大多数服务器返回
JSONObject,我可以使用以下方法轻松解析它:
String jsonText = readAll(br);
JSONObject json = new JSONObject(jsonText);
JSONObject resp = json.getJSONObject("Response");
现在我的问题是其他不返回JSON的服务器.有些人正在返回String,有些pdf文件是一些图像,因为所有响应都是200 OK我应该返回Positive healthcheck.
但是我使用Future Threads并在4秒后超时我的请求.并且所有返回JSON之外的任何服务器的服务器都被卡在“new JSONObject(jsonText);”
有什么办法可以检查Java中是否有JSON的类型是否为JSON?
更新:
我发现了我的错误 – 愚蠢的.
在try catch块中,我只捕获IOException,它没有捕获JSONException(并且也没有显示任何错误 – dunno y).我为JSONException添加了一个新的catch块,它现在适用于我的解决方案.
然而,这不是优雅的解决方案,@ Dave,@ Radai和@Koi的解决方案是正确的方法.