当前位置: 首页 > 知识库问答 >
问题:

打开URLConnection后的奇怪状态403

白星腾
2023-03-14

我想知道为什么这个示例代码:

public class Test {

    public static void main(String[] args) throws IOException {
        testLink("http://google.com");
        testLink("http://stackoverflow.com");
        testLink("http://docs.oracle.com");
    }

    private static void testLink(String urlStr) throws IOException
    {
        URL url = new URL(urlStr);

        HttpURLConnection conn = (HttpURLConnection)url.openConnection();
        conn.connect();
        System.out.println(conn.getResponseCode());
        conn.disconnect();
    }
}

通常打印:

200
403
200

而不是:

200
200
200

共有1个答案

伍胡媚
2023-03-14

根据维基百科,403回复通常表示两种情况之一:

已提供身份验证,但不允许经过身份验证的用户执行请求的操作。

禁止所有用户操作。例如,当目录列表被禁用时,对目录列表的请求返回代码403。

因此,很可能通过禁止用户代理连接到So。

 类似资料:
  • 我正在测试旅行应用程序的Quarkus功能,当我尝试建立在基于Quarkus的GraalVM应用程序中运行的URLConnection时,我发现了一个奇怪的行为。如果我运行原生应用程序: 我调用RESTendpoint: 然后我收到以下错误: 但是,当我运行与Jar相同的应用程序时,一切都很好。 这里有一个看到错误的例子: < Li > https://github . com/jabrena/q

  • 我正在创建一个URLClassloader来加载一些JAR。每个jar从不同的classloader中正确加载,每个jar包含一个具有run()方法的类。现在这个run()的主体可以在其中创建一个匿名的内部类。但是,因为我在try-with-resources块中创建了我的URLClassloader,所以它会自动关闭,并且在运行时,当它试图加载匿名内部类时,它会抛出一个NoClassDefFou

  • 问题内容: 我今天看了一些Java代码,发现了一些奇怪的语法: 我以为无法编译,并想解决我认为是错字的问题,但是后来我想起Java编译器确实接受了它! 有人可以帮我理解它的意思吗?它是功能数组吗? 问题答案: 这是一个返回的方法。 Java语言规范(8.4方法声明) 为了与Java平台的较早版本兼容,允许使用返回数组的方法的声明形式(将部分或全部)空括号对放置在参数列表之后,该空括号对构成数组类型

  • 我正在Windows 10中运行flutter。我以前有一个运行的Android设置。克隆flutter repo和更新路径后,我运行flutter医生-v。日志如下。现在,在搜索了一些解决问题的方法后,我从各种stackoverflow答案中找到了这个解决方案: Flutter.ioAndroid许可证状态未知我首先执行了这个:虽然我不知道如何让它永久。然后在再次运行flutter医生之后,我带

  • 本以为会问技术写代码之类的,但是问了一些开发和产品有矛盾怎么解决,项目开发之后客户有bug怎么办之类的问题…搞蒙圈了😭有uu遇到过吗

  • 问题内容: 因此,当我在Java中使用Doubles进行加法或减法时,它会给我带来奇怪的结果。这里有一些: 如果我加上,它给了我。没错 如果我添加,它会给我(重复s 的数量可能会关闭)。错了 如果我减去,它就会给我(再次,重复的s可能会关闭)。错了 起初我以为这只是将双精度数与十进制值相加的问题,但我错了。以下工作正常: 现在,添加的第一个数字是保存为变量的双精度数,尽管第二个变量从捕获文本。例如