java.net.MalformedURLException:无协议:

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/14278320/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-31 15:43:56  来源:igfitidea点击:

java.net.MalformedURLException: no protocol:

javaurlprotocols

提问by daniel__

Why I am getting no protocol if i have http in the url path?

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

Log:

日志:

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"

Exception:

例外:

    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

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>

采纳答案by lbalazscs

The value of the postURL parameter is a URL that can be parsed without exceptions, therefore the problem is somewhere else. What you can do:

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

  • Experiment with various applet parameters
  • Ask for support from the developers of the applet
  • If you don't have the source code of the applet, you can probably still decompile it, and find out how it works: Where can I find a Java decompiler?

The following program shows only that the postURL value is OK for Java:

以下程序仅显示 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));
    }
}