java如何在viewsource模式下使用openStream?
我可以打开viewsource模式(Ctrl+U)。我想读这篇文章。我试试URL。openStream()但我得到的服务器为空
java.net.MalformedURLException: unknown protocol:
我该怎么做,谢谢。 这是我的密码
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);
}
}
# 1 楼答案
一切@Michael Powerssaid都是正确的。然而,他在这里没有提到根本问题。也就是说:你用
view-source:
试图做的事情毫无意义(至少从URL.openStream()
API的角度来看。)为什么
URL上的
view-source:
前缀是指向web浏览器的方向。它的意思是这样的这只适用于指向浏览器的方向,或者更广泛地说,适用于指向渲染和显示资源的对象的方向
如果我们试图将上述含义应用到你的代码中的URL,则会出现概念上的问题。指定
URL.openStream
方法是为了给您一个由原始内容(字节)组成的流用于HTTP响应主体。不涉及渲染。因此,没有“你通常会做的”渲染不做因此,代码失败是因为JVM找不到一个协议处理程序,该处理程序知道如何处理带有
view-source:
协议的URL(除了忽略上下文上毫无意义的
view-source:
方向,协议处理程序能做什么?告诉它去做它已经在做的事情?)# 2 楼答案
这里的主要问题是URL:
view-source:https://www.google.com/
view-source:
位是一个web浏览器ism,它实际上不是URL的一部分。URL总是以协议开头(例如https://
、http://
、ftp://
、ws://
,等等),尝试: