【问题标题】:java.net.MalformedURLException: no protocol:java.net.MalformedURLException:没有协议:
【发布时间】:2013-01-11 12:34:51
【问题描述】:

如果我的 url 路径中有 http,为什么我没有得到任何协议?

日志:

network: Connecting http://xxx.ccc.local/upload/up.php?aa=0&bb=Ap%F3lice+de+Seguro&cc=1028&from=documentos with cookie "CLinkLanguage=en; __utma=232844939.1396040569.1356709687.1357294077.1357902500.12; __utmz=232844939.1356709687.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmb=232844939.24.10.1357902500; symfony=e0lpbkrcu0bidkpiujd1if4pt4; __utmc=232844939; CLinkLanguage=en; PHPSESSID=uv31kr1vpojvqgnc9ae9nda921"

例外:

    java.net.MalformedURLException: no protocol: 
        at java.net.URL.<init>(Unknown Source)
        at java.net.URL.<init>(Unknown Source)
        at java.net.URL.<init>(Unknown Source)

html

 <APPLET  CODE = "wjhk.jupload.JUploadApplet" ARCHIVE = "upload/wjhk.jupload.jar" WIDTH = "600" HEIGHT = "400" MAYSCRIPT></XMP>
        <PARAM NAME = CODE VALUE = "wjhk.jupload.JUploadApplet" >
        <PARAM NAME = ARCHIVE VALUE = "upload/wjhk.jupload.jar" >
        <PARAM NAME = "type" VALUE="application/x-java-applet;version=1.4">
        <PARAM NAME = "scriptable" VALUE="false">
        <PARAM NAME = "postURL" VALUE ="{$url}">
        <PARAM NAME = "anexosID" VALUE ="{$anexosID}">
        <PARAM NAME = "subanexosID" VALUE ="{$IdConsulta}">
        <PARAM NAME = "companyID" VALUE ="{$companyID}">
        <PARAM NAME = "resultURL" VALUE ="{$resultUrl}">
        <param name="debug" value="true">


    Java 1.4 or higher plugin required.

<APPLET  CODE = "wjhk.jupload.JUploadApplet" ARCHIVE = "upload/wjhk.jupload.jar" WIDTH = "600" HEIGHT = "400" MAYSCRIPT></XMP>
    <PARAM NAME = CODE VALUE = "wjhk.jupload.JUploadApplet" >
    <PARAM NAME = ARCHIVE VALUE = "upload/wjhk.jupload.jar" >
    <PARAM NAME = "type" VALUE="application/x-java-applet;version=1.4">
    <PARAM NAME = "scriptable" VALUE="false">
    <PARAM NAME = "postURL" VALUE ="http://xxx.ccc.local/upload/up.php?aa=0&bb=Alvar%E1%2Ffg&cc=1028&from=documentos">
    <PARAM NAME = "anexosID" VALUE ="">
    <PARAM NAME = "subanexosID" VALUE ="">
    <PARAM NAME = "companyID" VALUE ="">
    <PARAM NAME = "resultURL" VALUE ="">
    <param name="debug" value="true">


Java 1.4 or higher plugin required.
</APPLET>

【问题讨论】:

  • 向我们展示代码并向我们展示您传递给 URL 构造函数的 exact 值。
  • @JoachimSauer,问题已更新。
  • @Esailija,这是一个小程序,我无权访问源代码。
  • @loops 你怎么把它交给小程序,显示 html 或 javascript 源代码。传递给 URL 构造函数的 url 是一个空字符串。
  • 您是否收到此错误..... java.net.MalformedURLException: no protocol: {$VARS['HOST']}/upload/up.php?aa=0&bb=$idConsulta&cc= $COMPANYID&from=$from .........

标签: java url protocols


【解决方案1】:

postURL 参数的值是一个可以无异常解析的 URL,因此问题出在其他地方。你可以做什么:

  • 使用各种小程序参数进行实验
  • 寻求小程序开发者的支持
  • 如果你没有小程序的源代码,你可能仍然可以反编译它,看看它是如何工作的:Where can I find a Java decompiler?

以下程序仅显示 postURL 值适用于 Java:

public class A {
    public static void main(String[] args) throws MalformedURLException {
        String s = "http://xxx.ccc.local/upload/up.php?aa=0&bb=Alvar%E1%2Ffg&cc=1028&from=documentos";

        URL url = new URL(s);
        String protocol = url.getProtocol();
        System.out.println(String.format("A::main: protocol = '%s'", protocol));
    }
}

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 2014-05-24
    • 1970-01-01
    • 2014-05-26
    • 2014-02-24
    • 2011-11-22
    • 2018-11-08
    • 1970-01-01
    相关资源
    最近更新 更多