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

时间:2016-08-03 11:36:48

标签: java stream

我正在尝试从Meetup中检索此流的数据 - http://stream.meetup.com/2/open_events

但我使用下面的代码继续收到错误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();

该流不需要任何身份验证,通常可以在浏览器中看到

任何想法可能导致这样的错误?

1 个答案:

答案 0 :(得分:1)

如果您的请求看起来过于黯淡,某些网络服务器会抱怨,可能是因为他们认为这是由机器生成的?通常,他们可以通过您发送的标头来判断。这应该已经做到了:

    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();