Java 验证多个URL并获取正在工作的URL

Java 验证多个URL并获取正在工作的URL,java,android,Java,Android,我用这个来验证我的应用程序中的URL,但是我想对4个或更多的URL运行相同的方法,而不是一个,但似乎不知道如何运行 我的代码: validateUrl(this, "https://www.dummy.dummy/"); SharedPreferences sharedPreferences = getSharedPreferences("url", MODE_PRIVATE); if (sharedPreferences

我用这个来验证我的应用程序中的URL,但是我想对4个或更多的URL运行相同的方法,而不是一个,但似乎不知道如何运行

我的代码:

   validateUrl(this, "https://www.dummy.dummy/");
       SharedPreferences sharedPreferences = getSharedPreferences("url", MODE_PRIVATE);
       if (sharedPreferences.getBoolean("validated", true)) {
           Log.e("WEB",  "RUNNING");
           doSomething():
       } else {
           Log.e("WEB",  "DOWN");
       }


   private void validateUrl (Context context, String URL) {
       new FarlaGetRequest(context)
               .setURL(URL)
               .setListener(new FarlaGetRequest.onGetRequestListener() {
                   @Override
                   public void onSuccess(String response) {
                       Log.e("WEB",  "Done");
                       SharedPreferences.Editor editor = getSharedPreferences("url", MODE_PRIVATE).edit();
                       editor.putBoolean("validated",true);
                       editor.apply();

                   }

                   @Override
                   public void onFailure(int error) {
                       Log.e("WEB", "Failed");
                   }
               }).execute();

   }


目标是,如果url能够连接(服务器发送响应200),那么就做些什么,否则就不做

所以我要做的是,如何为多个URL做到这一点

例如:

检查第一个(如果正在运行或关闭,则记录) 检查第二个(如果正在运行或关闭,则记录) 第三节和第四节也一样


最后,应该说哪些是活动的,哪些不是活动的,那么有人能帮我吗?是否容易?

您可以使用url的
列表,并根据列表大小的次数执行验证程序功能,如果url连接(得到响应200),则只需移动到下一个url,否则从列表中删除该url。因此,通过这种方式,您将得到所有工作URL

解决方案代码:

 List<String> urlList = new ArrayList<>();

 // add all url's in the list; for example : urlList.add("https://www.dummy.dummy/");
 

希望你能明白如果有不清楚的地方,请随时询问。如果有帮助,请将其标记为正确答案,以便此答案可以帮助任何其他需要帮助的人。请检查验证方法。该方法如何知道哪个URL是有效的,哪个不是。好的,在成功侦听器中,您将得到一个响应,因此您可以检查它是否为200。我已经编辑了上面的答案,请查看一下。我已经提到了您需要检查的地方,以及如果需要,如何从列表中删除URL。如果您需要更多帮助,请告诉我。@StevenRõgrê如果它有效,请将其标记为正确答案。您需要一个接一个或一次全部运行此程序吗?
for(int i =0; i<urlList.size();i++)
{
   validateUrl (context, urlList.get(i))();
 }
 private void validateUrl (Context context, String URL) {
       new FarlaGetRequest(context)
               .setURL(URL)
               .setListener(new FarlaGetRequest.onGetRequestListener() {
                   @Override
                   public void onSuccess(String response) {

// HERE YOU CAN CHECK THAT WHAT'S THE RESPONSE**

  if(!response.equals("200"))
    {  
     `urlList .remove("https://www.dummy.dummy/")`// link to remove
    }

                   }

                   @Override
                   public void onFailure(int error) {
                       Log.e("WEB", "Failed");
                   }
               }).execute();

   }