加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在我的地址前添加“Http://”

发布时间:2020-12-15 02:07:17 所属栏目:Java 来源:网络整理
导读:我从一个来源提取地址,但有些提取物没有http://地址的前面,我如何检查地址是否有http://如果他们不是我如何添加http:// infront? :o 得到这个错误,我猜是由于http:// infront的“缺乏” java.net.MalformedURLException: no protocol: www.speedtest.n
我从一个来源提取地址,但有些提取物没有http://地址的前面,我如何检查地址是否有http://如果他们不是我如何添加http:// infront? :o

得到这个错误,我猜是由于http:// infront的“缺乏”

java.net.MalformedURLException: no protocol: www.speedtest.net
at java.net.URL.<init>(URL.java:583)
at java.net.URL.<init>(URL.java:480)
at java.net.URL.<init>(URL.java:429)
at a.PageRead.r(PageRead.java:29)
at a.ThreadDownloaderWriter.run(ThreadDownloaderWriter.java:35)
at java.lang.Thread.run(Thread.java:722)






 public StringBuilder readPage() {
        try {

            URL url = new URL(this.strURL);
            System.out.println(this.strURL);
            BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
            String line;
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null) {
                sb.append(line + "n");
            }
            reader.close();

            return sb;
        } catch (MalformedURLException e) {
            e.printStackTrace();
            return new StringBuilder("");
        } catch (IOException e) {
            e.printStackTrace();
            return new StringBuilder("");
        }
    }

解决方法

您问题的字面答案如下所示:

String url = ... ; // Whatever
if (!url.startsWith("http://")) {
    url = "http://" + url;
}

但这仍然不是一个很好的解决方案.例如,https URLS怎么样? ftp甚至文件系统URL(file://)怎么样.然后你可能想要考虑区分大小写的事情(“http://”!=“HTTP://”!=“HttP://”即使实际上它们都意味着同样的事情并且会被接受通过Java的URL类).

你可以尝试更小心一点:

if (!url.toLowerCase().matches("^w+://.*")) {
    url = "http://" + url;
}

这匹配URL字符串的开头与任何“单词字符”后跟冒号(:)和两个斜杠(//),然后默认为http://如果缺少URL的协议部分.这将覆盖比原始(文字)答案更多的案例.

最终,如果有人给你一个没有协议部分的URL,那么它就是一个无效的URL.

您应该考虑阅读一本关于Java编程的书,因为这些都是基本的逻辑/ Java API问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读