Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当需要登录时,页面返回200而不是401_Java_Http - Fatal编程技术网

Java 当需要登录时,页面返回200而不是401

Java 当需要登录时,页面返回200而不是401,java,http,Java,Http,我的任务是检查一些URL是否正常工作,我使用Java发出HTTP get请求以获取响应代码 所以我做的就是这个 URL u = new URL("some URL"); HttpURLConnection huc = (HttpURLConnection) u.openConnection(); huc.setRequestMethod("GET"); huc.connect(); int code = huc.getResponseCode(); System.out.println(code

我的任务是检查一些URL是否正常工作,我使用Java发出HTTP get请求以获取响应代码

所以我做的就是这个

URL u = new URL("some URL");
HttpURLConnection huc = (HttpURLConnection) u.openConnection();
huc.setRequestMethod("GET");
huc.connect();
int code = huc.getResponseCode();
System.out.println(code + " " + huc.getURL());
问题:有些网站要求您登录才能访问该页面,但该页面不返回401代码,而是返回200。请注意,在提供用户名和密码之前,网页不会显示。它在弹出窗口中请求身份验证

那么我如何捕捉这些链接呢


另外,我如何识别网页是否显示类似的登录页面?仅仅检查URL中的“登录”一词就足够了吗?

没有通用的方法来处理这个问题。你必须知道你正在使用的网站如何进行身份验证-401?单独登录页面?多因素身份验证(即:使用RSA令牌)?在URL中检查子字符串“login”是处理某些问题的可能方法,但对于一般方法来说还不够

例如,401仅在使用(或尝试直接访问受保护的资源)时发生。还有很多其他的方法来做auth

他在评论中很好地总结了这个问题:


如果您必须处理滚动自己的自定义身份验证的页面,那么您可能必须编写自己的自定义代码来适应它们。根据相关站点的工作方式,您可以通过在请求中发送适当的cookie绕过身份验证,就像您已经通过身份验证一样,或者通过一些类似的方式


嗯,如果页面要求您登录,它仍然存在,不是吗?如果您必须处理滚动自己的自定义身份验证的页面,那么您可能必须编写自己的自定义代码来适应它们。根据相关站点的工作方式,您可以通过在请求中发送适当的cookie绕过身份验证,就像您已经通过身份验证一样,或者通过类似的方式。@5gon12eder是的,但我的主管要求知道哪些站点需要身份验证才能访问them@JohnBollinger我对网络编程知之甚少,所以我会尝试寻找更多关于你建议的信息。谢谢,我很困惑,“登录”页面应该返回200-您可以在不登录的情况下访问它。登录页面后面的内容应该返回401。我不认为这种方法会像你希望的那样有效。我想我现在对这个问题有了更好的理解。谢谢:)