gpt4 book ai didi

Java - 检查响应是否为 JSON

转载 作者:搜寻专家 更新时间:2023-11-01 01:43:50 25 4
gpt4 key购买 nike

我正在创建服务器健康检查页面。大多数服务器返回 JSONObject,我可以使用以下方法轻松解析它:

String jsonText = readAll(br);              
JSONObject json = new JSONObject(jsonText);
JSONObject resp = json.getJSONObject("Response");

现在我的问题是其他服务器不返回 JSON。有些正在返回字符串,有些是 pdf 文件和一些图像,并且由于所有响应都是 200 OK 我应该返回 Positive healthcheck。

但是我正在使用 Future Threads 并在 4 秒后超时我的请求。所有返回 JSON 以外的任何内容的服务器都卡在“new JSONObject(jsonText);”

有什么方法可以在 Java 中检查响应类型是否为 JSON?

更新:

我发现了我的错误——一个愚蠢的错误。在 try catch block 中,我只捕获 IOException,它没有捕获 JSONException(并且也没有显示任何错误 - 不知道是的)。我为 JSONException 添加了一个新的 catch block ,它目前适用于我的解决方案。

但是,这不是优雅的解决方案,@Dave、@Radai 和@Koi 的解决方案是正确的方法。

最佳答案

不解析字符串。返回上一步,检查 HTTP 响应的 Content-Type header 。如果响应包含 JSON 数据,则 Content-Type 应为 application/json ( source )。

关于Java - 检查响应是否为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18472275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com