Java 尝试从公共流读取时出现错误403

Java 尝试从公共流读取时出现错误403,java,stream,Java,Stream,我正在尝试从Meetup检索此流的数据- 但是我使用下面的代码不断得到错误403 URL meetupStream = new URL("http://stream.meetup.com/2/open_events"); BufferedReader in = new BufferedReader(new InputStreamReader(meetupStream.openStream())); String inputLine; while ((inputLine = in.readLine

我正在尝试从Meetup检索此流的数据-

但是我使用下面的代码不断得到错误403

URL meetupStream = new URL("http://stream.meetup.com/2/open_events");
BufferedReader in = new BufferedReader(new InputStreamReader(meetupStream.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null){
      System.out.println(inputLine);
}
in.close();
该流不需要任何身份验证,通常可以在浏览器中看到


你知道是什么原因导致了这样的错误吗?

一些网络服务器会抱怨,如果你的请求看起来太糟糕,可能是因为他们认为它是由机器生成的?通常,他们可以通过您发送的邮件头来判断。这应该已经做到了:

    URLConnection connection = new URL("http://stream.meetup.com/2/open_events").
                                 openConnection();
    connection.setRequestProperty("User-Agent", "Lynx");
    connection.connect();
    BufferedReader in = new BufferedReader(new InputStreamReader(
    connection.getInputStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null){
        System.out.println(inputLine);
    }
    in.close();

如果您的请求看起来太糟糕,一些Web服务器会抱怨,可能是因为他们认为它是由机器生成的?通常,他们可以通过您发送的邮件头来判断。这应该已经做到了:

    URLConnection connection = new URL("http://stream.meetup.com/2/open_events").
                                 openConnection();
    connection.setRequestProperty("User-Agent", "Lynx");
    connection.connect();
    BufferedReader in = new BufferedReader(new InputStreamReader(
    connection.getInputStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null){
        System.out.println(inputLine);
    }
    in.close();

那是因为我没有发送任何标题吗?是的,很有可能。但是,另一种标头类型可能无法使其工作。要100%确定,您需要深入了解服务器的实现。这是因为我没有以头的形式发送任何内容吗?是的,很可能是这样。但是,另一种标头类型可能无法使其工作。要100%确定,您需要深入了解服务器实现。