克服 java.net.MalformedURLException: 无协议异常

2023-12-29

我有一个属性文件,其中包含一个属性,指定包含温度数据集的 NOAA 网站的 URL。该属性包含一个[DATE_REPLACE]令牌,因为当 NOAA 生成新的预报时,URL 每天都会变化。

在我的属性文件中,我指定:

WEATHER_DATA_URL="http://weather.noaa.gov/pub/SL.us008001/DF.anf/DC.mos/DS.mex/RD.[DATE_REPLACE]/cy.00.txt"

我已经在 PropertyHelper 类(java.util.Properties 的包装器)中声明了一个方法,用于使用以下命令生成当天的 URL 字符串WEATHER_DATA_URL正如名字一样,“yyyyMMdd" 作为日期格式,今天的日期。

public String getPropertyWithDateReplaceToken(String name, String dateFormat, Date dateToFormat)
{
    String value = this.properties.getProperty(name);

    if (StringHelper.isNullOrWhitespace(value) || !value.contains("[DATE_REPLACE]"))
    {
        throw new UnsupportedOperationException("The property value should specify the [DATE_REPLACE] token");
    }

    StringBuilder sb = new StringBuilder(value);
    int index = sb.indexOf("[DATE_REPLACE]");
    while (index != -1)
    {
        String replacement = StringHelper.getTodayAsDateString(dateFormat, dateToFormat);
        sb.replace(index, index + "[DATE_REPLACE]".length(), replacement);
        index += replacement.length();
        index = sb.indexOf(value, index);
    }

    return sb.toString();
}

然后,我使用以下方法调用另一个帮助器类来从网页读取文本:

public static List<String> readLinesFromWebPage(String urlText) throws Exception
{
    List<String> lines = new ArrayList<String>();
    if (StringHelper.isNullOrWhitespace(urlText))
    {
        throw new NullPointerException("URL text cannot be null or empty");
    }

    BufferedReader dataReader = null;
    try
    {
        System.out.println("URL = " + urlText);
        String trimmedUrlText = urlText.replaceAll("\\s", "");

        URL url = new URL(trimmedUrlText);
        dataReader = new BufferedReader(new InputStreamReader(url.openStream()));

        String inputLine;
        while((inputLine = dataReader.readLine()) != null)
        {
            lines.add(inputLine);
        }

        return lines; 
    }
    catch(Exception e)
    {
        logger.logThrow(Level.SEVERE, e, "Exception (" + e.getMessage() + ") attempting to " +
                "read data from URL (" + urlText + ")");
        throw e;
    }
}

正如您所看到的,我尝试从生成的 URL 字符串中删除空格,希望这会导致问题。 URL 字符串已正确生成,但出现以下异常:

java.net.MalformedURLException: no protocol: "http://weather.noaa.gov/pub/SL.us008001/DF.anf/DC.mos/DS.mex/RD.20121219/cy.00.txt"

如果我手动设置字符串,一切正常......我错过了什么?


您的属性文件的 URL 值用双引号引起来。删除这些。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

克服 java.net.MalformedURLException: 无协议异常 的相关文章

  • 如何将未知列数的 ResultSet 映射到 List 并将其显示在 HTML 表中?

    我使用 Netbeans GlassFish 和 JavaDB 创建了一个数据库应用程序 现在我的控制器 Servlet 代码执行一些动态 SQL 查询并返回结果集 或者我可以更改 toString 现在 如何以表格格式显示返回的结果集 我
  • 如何使用固定数量的工作线程实现简单线程

    我正在寻找最简单 最直接的方法来实现以下内容 主程序实例化worker 执行任务的线程 Only n任务可以同时运行 When n已达到 不再有工人 开始直到计数 正在运行的线程回落到下方n 我觉得Executors newFixedThr
  • 如何从 Play WSClient 的字符串创建 WSResponse 对象

    文档 https www playframework com documentation 2 4 x JavaTestingWebServiceClients Mock the web service建议使用模拟Web服务测试基于WSCli
  • 如何将 JSpinner 的值设置为特定日期

    我有一个JSpinner我添加到JPanel我想将其时间设置为 GregorianCalendar calendar JSpinner spinner new JSpinner spinner setModel model pom add
  • 单元测试组合服务方法

    我正在为一个类编写 junit 单元测试 该类使用以下方法实现公开的接口 public Set
  • Java 读取大文本文件时出现 OutOfMemoryError

    我是 Java 新手 正在读取非常大的文件 需要一些帮助来理解问题并解决它 我们有一些遗留代码 必须对其进行优化才能正常运行 文件大小仅在 10mb 到 10gb 之间变化 只有当文件开始大小超过 800mb 时才会出现启动问题 Input
  • 迁移到Java 9或更高版本时是否需要切换到模块?

    我们目前正在从 Java 8 迁移到 Java 11 但是 升级我们的服务并没有我们预期的那么痛苦 我们基本上只需要更改我们的版本号build gradle文件和服务都顺利启动并运行 我们升级了库以及使用这些库的 微 服务 到目前为止没有问
  • 尝试获取屏幕上绘制的每个随机圆圈的 x、y 坐标

    您好 我正在制作一款游戏 该游戏将在屏幕上创建随机圆圈 随机创建的圆圈的值为红色或绿色 我的问题是 我希望不仅能够确定用户何时单击其中一个圆圈 而且还能够确定他们最终单击的圆圈 红色或绿色 下面是我的代码 我的主要问题是试图找到将要绘制的圆
  • JTextField 和 JTextArea

    JTextField 和 JTextArea 有什么不同 是否可以在一个班级中使用这两个班级 总之 JTextField 是单行文本字段 而 JTextArea 可以跨越多行 文档中清楚地解释了这些差异 文本区 http docs orac
  • maven 无法下载 jacoco 0.7.10-SNAPSHOT jar

    我对此感到困惑 我的 pom xml 中有这个
  • LocalDate 减去 period 得到错误的结果

    LocalDate减去一个Period 如 28年1个月27天 得到错误的结果 但减去一个Period 只有天单位 如 10282 天 得到正确的结果 有什么需要注意的吗 public static void main String arg
  • 将现有 eclipse 项目导出到 war 文件时出现“模块名称无效”

    我正在尝试将现有 Eclipse 项目导出到 war 文件 但无论我在 WAR Export 对话框页面中输入什么 系统总是返回 模块名称无效 我不知道如何解决这个问题 谢谢您的帮助 我有同样的问题 我修复了它 请按照以下步骤操作 您可以创
  • 更改 JComboBox 中滚动条的大小

    有谁知道如何手动更改 jComboBox 中的滚动条大小 我已经尝试了一大堆东西 但没有任何效果 好吧 我明白了 您可以实现 PopUpMenuListener 并使用它 public void popupMenuWillBecomeVis
  • 改变 Java 中凯撒移位的方向

    用户可以通过选择 1 向左或 2 向右移动字母来选择向左或向右移动 左边工作正常 右边不行 现在它显示了完全相同的循环 但我已经改变了所有 and 以不同的方式进行标记 最终我总是得到奇怪的字符 如何让程序将字符向相反方向移动 如果用户输入
  • 使用 HTTPServletRequestWrapper 包装请求参数

    我有一个可以验证 授权 REST 调用的过滤器 该过滤器需要访问请求参数 因此我为此编写了一个自定义 HTTPServletRequestWrapper import java util Collections import java ut
  • 在循环中按名称访问变量

    我正在开发一个 Android 项目 并且有很多可绘制对象 这些绘图的名称都类似于icon 0 png icon 1 png icon 100 png 我想将这些可绘制对象的所有资源 ID 添加到整数 ArrayList 中 对于那些不了解
  • Android项目中使用java获取电脑的IP地址

    我在用ksoap2 android http code google com p ksoap2 android 我需要使用java获取IP地址 这样我就不必每次都手动输入它 我所说的 IP 地址是指 例如 如果我这样做ipconfig使用命
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • android 中的 java.net.URL ..新手问题

    我是java新手 正在尝试android开发 以下代码生成 malformedURLException 有人可以帮助我识别异常吗 任何提示都会非常有帮助 package com example helloandroid import and
  • 如何清理 Runtime.exec() 中使用的用户输入?

    我需要通过命令行调用自定义脚本 这些脚本需要很少的参数并在 Linux 机器上调用 当前版本容易出现各种shell注入 如何清理用户给出的参数 参数包括登录名和路径 Unix 或 Windows 路径 用户应该能够输入任何可能的路径 该路径

随机推荐

  • iOS 中 UIImageView 的圆形蒙版动画

    我想知道如何在 uiimageview 上对蒙版的比例进行动画处理 附示例图片 灰色框是我的 uiviewcontroller 的图像背景 不是问题的一部分 我假设创建一个 uiview 子类 并传递图像 半径和中心点 然后 创建一个蒙版
  • 在线 Javascript 代码评估工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Adobe AIR 应用程序在空闲时间后响应缓慢

    我花了数百美元使用 Flex 4 0 开发 Adob e AIR 应用程序 现在我想我应该已经完成 了 但在让应用程序运行几个小时以上后 UI 响应能力开始缺乏 我做什么 我的应用程序通过将具有透明度的背景图像设置为窗口模块中的 Borde
  • 线程安全的梅森扭曲器

    在寻找线程安全的随机生成器时 我发现了一个 mersenne twinser 生成器类 作者说如果线程安全的话 http www umiacs umd edu yangcj mtrnd html http www umiacs umd ed
  • keras 中的 One-hot 编码标签

    我有一组来自 CSV 文件中标签列的整数 1 2 4 3 5 2 班级数量为5即范围1 to 6 我想使用下面的代码对它们进行一次性编码 y df iloc 10 values y tf keras utils to categorical
  • Chrome网络计时,如何改进内容下载

    我在 Chrome DevTools 中检查 XHR 调用计时以改善缓慢的请求 但我发现 99 的响应时间都浪费在内容下载上 即使内容大小小于 5 KB 并且应用程序在本地主机上运行 正在工作 我的本地机器 所以没有网络问题 但是 当使用
  • wp_remote_post 响应正文受到保护

    我已经进行了 API 调用wp remote post并试图用wp remote retrieve body 但响应仅显示标头 正文受到保护 下面的代码 我用来进行 API 调用 args array LocationId gt loc i
  • Handlebars.js:像普通完整模板一样使用部分模板

    我有一个模板 我想将其用作部分模板 并通过 javascript 单独使用 如果您的模板是预编译的 您可以通过以下方式访问您的部分模板Handlebars partials partial name 以及通过模板从模板调用它们 gt par
  • DDD 中的 DAO、存储库和服务

    阅读了几篇文章后 我开始理解 DAO 和存储库之间的区别 但我发现自己在尝试理解存储库和服务之间的区别时遇到了麻烦 简而言之 在 OO 范式中 DAO 包含基本的类CRUD operations对于一个实体类 它具有获取或检索底层持久存储系
  • 将 .next() 与 takeUntil 一起使用时的参数

    我最近注意到升级我的 rxjs 版本后你不能使用 next method this ngUnsubscribe next 就像下面这样 export class TakeUntilComponent implements OnDestroy
  • 所有的java小程序都到哪里去了? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 当java还很年轻的时候 人们对编写小程序感到兴奋 在一段时间内 它们很酷并且很受欢迎 现在 我再也见不到他们了 相反 我们有 flash ja
  • Angular JS $locationChangeStart 获取下一个 url 路由对象

    我正在尝试在我的角度应用程序上实现授权 当更改路线时 我想检查该路线是否已为用户授权 我尝试过 routeChangeStart但这并不能阻止该事件的发生 我当前的代码 scope on routeChangeStart function
  • ArrayAdapter getView() 方法如何工作?

    我想做一个ArrayAdapter显示图像和文本 如果可能的话我不想举例 我希望有人向我解释如何getView works Thanks getView 是适配器的主要部分 它返回View它将显示为您的列表 网格 图库 任何使用适配器项目的
  • 更新 Cocos2d 中的标签值

    我正在 cocos2d 中制作一个游戏 在更新分数时 旧分数值会出现在标签上 而新值会被覆盖 我正在使用以下代码来显示分数 LblScore CCLabel labelWithString NSString stringWithFormat
  • 利用Android 4.4 KitKat中的半透明状态栏

    当我发布适用于 Android 4 0 4 3 的笔记应用程序时 我使用了自定义操作栏颜色和自定义操作栏图标 而不是使用标准的浅色和深色操作栏 我想在 Android 4 4 上做到这一点 状态栏也将采用我在操作栏中使用的自定义颜色 FFD
  • Play Framework scala 如何创建临时变量

    嗨 所以我有一个 while 循环 for i lt 0 until consoles size Do something Add records to a column 但我想添加一个变量 并根据发生的情况将其添加到不同的组 例如 var
  • Spark Streaming现在支持Kafka 1.1.0吗?

    现在spark版本是2 3 我看到了maven中央存储库 https search maven org search 7Cga 7C1 7Cg 3A 22org apache spark 22 https search maven org
  • gnuplot:绘制来自标准输入的两个数据集

    我在尝试从 gnuplot 中的 stdin 绘制两个不同的数据集时遇到一些问题 这是我正在测试的命令 gnuplot persist lt
  • 在 NSArray 中搜索最近的数字

    有没有一种简单的方法可以搜索NSArray找到与用户输入数字最接近 或精确 如果存在 匹配的数字 假设我有一个像这样的数组 7 23 4 11 18 2 然后用户输入5 该程序按紧密度降序返回三个最接近的值 4 7 2 and 最重要的是给
  • 克服 java.net.MalformedURLException: 无协议异常

    我有一个属性文件 其中包含一个属性 指定包含温度数据集的 NOAA 网站的 URL 该属性包含一个 DATE REPLACE 令牌 因为当 NOAA 生成新的预报时 URL 每天都会变化 在我的属性文件中 我指定 WEATHER DATA