Java 如何确定web服务是否已启动并正在运行

Java 如何确定web服务是否已启动并正在运行,java,android,web-services,rest,Java,Android,Web Services,Rest,我试图从我的android应用程序调用以下web服务,它挂起,然后完成,但没有返回结果: 网络服务: 然而,当我点击链接时,它工作得很好——显示了json文件。但它在我的应用程序中不起作用 但现在,它在我的android应用程序中运行良好,我猜它可能是暂时关闭的。我如何知道一个web服务是否已启动并运行,android应用程序可以使用它?通常,web服务设计为具有一个状态页面,可以返回状态文本或HTTP返回代码来指示服务状态 如果没有,您可以设计一个函数,定期执行一个非常基本的请求,并使用已知的

我试图从我的android应用程序调用以下web服务,它挂起,然后完成,但没有返回结果:

网络服务:

然而,当我点击链接时,它工作得很好——显示了json文件。但它在我的应用程序中不起作用


但现在,它在我的android应用程序中运行良好,我猜它可能是暂时关闭的。我如何知道一个web服务是否已启动并运行,android应用程序可以使用它?

通常,web服务设计为具有一个状态页面,可以返回状态文本或HTTP返回代码来指示服务状态


如果没有,您可以设计一个函数,定期执行一个非常基本的请求,并使用已知的结果来确定状态。这比简单的ping要好得多。

如果关闭,很可能会显示一个HTML错误页面,您的应用程序将尝试解析该页面,这将导致错误

我有一个类似的问题,因为我需要知道用户是否返回HTML或正确的JSON,为此,我在解析区域的try/catch之外创建了要使用的ArrayList。如果您使用的是字符串,那么也应该这样做

我的意思是,使用:

ArrayList<Something> arrayList = new ArrayList<Something>();
String testString = ""; instead of String testString = null;
ArrayList ArrayList=new ArrayList();
字符串testString=“”;而不是字符串testString=null;
我只使用了
ArrayList-ArrayList在某一点不正确。如果用户随后返回HTML,则不会出现错误,用户只会返回一个空arraylist或空字符串


然后,您可以对此进行计划,并显示某种错误消息。这样,您只需要一个网络请求,但您仍然可以计划恢复数据,并且服务器将关闭。

基本上:向服务发出一个http请求,一个不会影响服务状态的请求,然后查看http状态代码。如果是网络/服务器问题,您甚至无法连接到该服务,并出现TCP级别的故障。如果这是服务器端问题,您将得到除2xx成功代码以外的其他代码。难道您不能在结果字符串中搜索标记或类似的内容吗?我不知道您遇到了什么类型的错误,但我的错误是空指针。这是因为您将尝试解析HTML页面,因此当您通过JSONObject/Array请求某些内容时,它不知道返回什么。在我看来,这样做比较容易。对我来说,这只是一次代码更改。对你来说应该是一样的。