如何在viewsource模式下使用openStream?

时间:2018-08-07 19:14:57

标签: java

我可以打开视图源模式(Ctrl + U)。我想从中读取文本。我尝试使用URL.openStream(),但服务器为空

  

java.net.MalformedURLException:未知协议:

我该怎么办,谢谢。 这是我的代码

public void viewSource(){
    try {
        URL url = new URL("view-source:https://www.google.com/");
        Scanner sc = new Scanner (url.openStream());
        while (sc.hasNextLine())
        {
            System.out.println(sc.nextLine());
        }
        sc.close();
    } catch (MalformedURLException ex) {
        Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
    }

}

2 个答案:

答案 0 :(得分:0)

这里的主要问题是URL:my_fig = plt.gcf() my_fig.set_size_inches(width_in_inches, height_in_inches)

view-source:https://www.google.com/位是一个网络浏览器,实际上并不是URL的一部分。网址始终以协议开头(例如view-source:https://http://ftp://等)尝试:

ws://

答案 1 :(得分:0)

<块引用>

如何在视图源模式下使用 openStream?

@Michael Powers said 的一切都是正确的。但是,他在这里没有提到根本问题。也就是说:您似乎试图通过使用 view-source: 没有意义!(至少,从 URL.openStream() API 的角度来看。) >

为什么?

URL 上的 view-source: 前缀是指向网络浏览器的方向。它的意思是这样的。

<块引用>

用户:“嘿浏览器先生”

浏览器:“我能为你做什么?

用户:“这件事由 view-source: 之后的 URL 表示...”

浏览器:“是的,我正在获取它。现在怎么办?”

用户:“不要像通常那样渲染,只需在纯文本窗口中显示给我”

浏览器:“好的……就是这样。”

这仅作为浏览器的方向,或更广泛地作为呈现和显示资源的内容的方向才有意义。

如果我们尝试将上述含义应用于您的代码的 URL,则存在概念上的问题。指定 URL.openStream 方法为您提供一个流,其中包含 HTTP 响应正文的原始内容(作为字节!)。不涉及渲染。所以没有“你通常会做的”渲染不做。

因此您的代码失败,因为 JVM 找不到知道如何处理带有 view-source: 协议的 URL 的协议处理程序。

(协议处理程序可以做什么......除了忽略上下文无意义的 view-source: 方向,它告诉它做一些它已经在做的事情?)