Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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/3/sql-server-2005/2.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 接收不正确的HTTP响应状态代码_Java_Selenium Webdriver - Fatal编程技术网

Java 接收不正确的HTTP响应状态代码

Java 接收不正确的HTTP响应状态代码,java,selenium-webdriver,Java,Selenium Webdriver,我试图在页面上找到断开的链接 我获取页面上所有可用的链接,然后循环浏览它们。但是,有时会收到不正确的响应代码 List<WebElement> links = driver.findElements(By.tagName("a")); System.out.println("Total no. of links are: "+ links.size()); java.util.Iterator<WebElement> it = links.iterator(); whi

我试图在页面上找到断开的链接

我获取页面上所有可用的链接,然后循环浏览它们。但是,有时会收到不正确的响应代码

List<WebElement> links = driver.findElements(By.tagName("a"));
System.out.println("Total no. of links are: "+ links.size());
java.util.Iterator<WebElement> it = links.iterator();

while(it.hasNext()){
    WebElement element = it.next();
    url = element.getAttribute("href");
    urlname=element.getText();

    if(url == null || url.isEmpty()){
        System.out.println(urlname +" - "+url+ ": URL is either not configured for anchor tag or it is empty");
        continue;
    }

    try {
        huc = (HttpURLConnection)(new URL(url).openConnection());                       
        huc.setRequestMethod("HEAD");                       
        huc.connect();                      
        respCode = huc.getResponseCode();

        if(respCode >= 400){
            System.out.println(urlname +" - "+ url +": is a broken link");
        }
        else{
           // System.out.println(url+" is a valid link");
        }

    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
List links=driver.findElements(按.tagName(“a”));
System.out.println(“链接总数为:“+links.size()”);
java.util.Iterator it=links.Iterator();
while(it.hasNext()){
WebElement=it.next();
url=element.getAttribute(“href”);
urlname=element.getText();
if(url==null | | url.isEmpty()){
System.out.println(urlname+“-”+url+”:未为锚定标记配置url或url为空);
继续;
}
试一试{
huc=(HttpURLConnection)(新URL(URL.openConnection());
huc.setRequestMethod(“HEAD”);
huc.connect();
respCode=huc.getResponseCode();
如果(respCode>=400){
System.out.println(urlname+“-”+url+”:是一个断开的链接);
}
否则{
//System.out.println(url+“是有效链接”);
}
}捕获(格式错误){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}

您需要提供更多信息。什么是“不正确”的响应代码?问题是什么?我们如何重现?您使用的是什么输入,得到的是什么输出。从网页获取所有链接,然后使用huc=(HttpURLConnection)(newurl(URL).openConnection());huc.setRequestMethod(“HEAD”);huc.connect();respCode=huc.getResponseCode();此代码用于获取http响应。问题是有时它会给我正确的响应状态代码,有时不会。请解释您得到的响应代码以及它们“不正确”的原因。例如,对于一个链接,上面的代码给我的代码为500,当我在线检查时,状态代码为200。很可能锚定标记的href属性具有相对属性url而不是绝对url,因此,如果您直接尝试打开与相对url的连接,它可能无法正常工作。你能检查一下吗?要么所有的href值都是绝对url,要么当你试图打开连接时,在相对url前面加上基本url?(摘自@Sachin Ramdhan Boob删除的答案)