Java - 从另一个类输入字符串时出现 MalformedURLException,但在粘贴相同的字符串时不会出现异常

标签 java url

实例化新 URL 时,DrawImage 类中的下面第一段代码起作用。 但是,当我从另一个类 RandomImage 输入相同的字符串(“https://www.purchased.com/hubfs/template/favicon.png ”)时,会出现以下错误:

我首先尝试手动输入字符串。

import java.awt.Image;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class DrawImage {

  public static void main(String[] args) throws Exception {
    String link = "https://www.purchased.com/hubfs/template/favicon.png";
    System.setProperty("http.agent", "Chrome");
    URL url = new URL(link);
    Image image = ImageIO.read(url.openStream());

  }
}

-> 按预期工作

然后,我改为提供一个 RandomImage(这是产生错误消息的那个!)

import java.awt.Image;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class DrawImage {

  public static void main(String[] args) throws Exception {
    RandomImage img = new RandomImage();
    String link = img.link;
    System.setProperty("http.agent", "Chrome");
    URL url = new URL(link);
    Image image = ImageIO.read(url.openStream());

  }
}

以下类提供随机图像:

import java.net.*;
import java.io.*

public class RandomImage {
  public static String link;

  public RandomImage() throws Exception {
    this.link = generateUsableImageLink();
  }

但是当运行第二种方法时,我收到以下错误:

java.net.MalformedURLException: no protocol: "https://www.purchased.com/hubfs/template/favicon.png"
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at DrawImage.main(DrawImage.java:25)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:267).

我尝试(如上面的代码中所示)将 RandomImage 设为对象,但错误提要告诉我,当我使用 RandomImage 的输入创建 URL 实例时,发生了错误。

如果我猜测,该问题是由导入的包之间的某些交互或 RandomImage 中引发的错误引起的。逐个字符,我手动输入的String和RandomImage生成的String是一致的。我该如何解决这个问题?

最佳答案

方法generateUsableImageLink生成带引号的字符串。 更改此方法,使其不在字符串上添加引号。

关于Java - 从另一个类输入字符串时出现 MalformedURLException,但在粘贴相同的字符串时不会出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57022136/

相关文章:

java - 找到最大最频繁元素

java - 为什么在分布式模式下使用 Storm 时无法将结果写入 Bolt 中的文件?在 LocalCluster 中工作正常

java - 使用 iText 外部 CSS 将 HTML 转换为 PDF

Php 不要添加已经存在的 url 参数

javascript - 在 javascript 中使用 url 和字符串

Java,Base64 : How to write a Base64OutputStream class using Decorator Pattern

swift - 如何正确编码 url 字符串以避免问号(?)在 swift 中成为 %3F?

java - 如何在java中构建url?

JavaScript - 从窗口获取 url 而不提交

java - 什么是NullPointerException,我该如何解决?