Java HttpURLConnection.getInputStream处的FileNotFoundException

Java HttpURLConnection.getInputStream处的FileNotFoundException,java,android,Java,Android,我在下面的代码中得到了这个错误,openStream()的错误原因我相信,我只是想得到下面URL页面的内容,如果我将instagram页面的URL更改为其他内容,代码效果会很好,但如果我将其保留在以下URL中,而该URL在Instagram页面中找不到页面,则会导致此错误 Exception in thread "main" java.io.FileNotFoundException: https://instagram.com/p/2cZgLGSdIe/ at sun.net.www.

我在下面的代码中得到了这个错误,openStream()的错误原因我相信,我只是想得到下面URL页面的内容,如果我将instagram页面的URL更改为其他内容,代码效果会很好,但如果我将其保留在以下URL中,而该URL在Instagram页面中找不到页面,则会导致此错误

Exception in thread "main" java.io.FileNotFoundException: https://instagram.com/p/2cZgLGSdIe/
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1624)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
    at java.net.URL.openStream(URL.java:1037)
    at getURLfinal.getURL.main(getURL.java:17)
守则:

public class getURL {

        public static void main(String[] args) throws MalformedURLException, IOException {
            // TODO Auto-generated method stub
            @SuppressWarnings("resource")
            String url = "";
            String out = new Scanner(new URL("https://instagram.com/p/2cZgLGSdIe/").openStream(), "UTF-8").useDelimiter("\\A").next();
            System.out.println(out);
        }
    }
实际返回404未找到

$ curl -I https://instagram.com/p/2cZgLGSdIe/
HTTP/1.1 404 NOT FOUND

所以我猜
FileNotFoundException
是预期的行为…

通过使用
HttpURLConnection
getResponseCode()
来修复问题,它检查页面是否有效,返回
200
或页面未找到
404
,未经授权
401

            URL url = new URL("https://instagram.com/p/2cZgLGSdIe/");
              HttpURLConnection con = (HttpURLConnection) url
                .openConnection();
              if(con.getResponseCode() == 200){
                  System.out.println("Page is ok!");
              }
              else{
              System.out.println("Page not found 404 /unauthorized 401 ");
              }

嗯<代码>curl-Ihttps://instagram.com/p/2cZgLGSdIe/首先返回
HTTP/1.1 404未找到
但页面已经存在,我希望我的代码能够处理此类问题:/put a valid url..将url放入浏览器显示相同的错误“但页面已经存在”-显然,不存在这样的错误处理:错误范围很广,可以通过多种方式进行处理。。。执行适当的
HttpURLConnection
实现,以拦截网络错误、尝试/捕获黑色、
Picasso
-如库等。我已使用getResponseCode()解决了HttpURLConnection的问题,并检查响应是否为200,否则将是未找到页面或未经授权。。这样做好吗?因为如果任何一个页面都正常,它会给出一个回复200总是正确的吗?@boudi不是在这里评论,你能自己回答你的问题吗?谢谢。@boudi是的,使用
HttpURLConnection.getResponseCode()
是一种很好的做法