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
java.net.MalformedURLException: no protocol:
提问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?
- 试验各种小程序参数
- 寻求小程序开发者的支持
- 如果您没有小程序的源代码,您可能仍然可以反编译它,并了解它是如何工作的:我在哪里可以找到 Java 反编译器?
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));
}
}