我正在尝试在默认浏览器中打开一个链接。我使用了以下代码。
String myUrl = "http://www.example.com/engine/myProcessor.jsp?Type=A Type&Name=1100110&Char=!";
try {
Desktop.getDesktop().browse(new URI(myUrl));
} catch (IOException err) {
setTxtOutput("Error: "+err.getMessage());
} catch (URISyntaxException err) {
setTxtOutput("Error: "+err.getMessage());
} catch (Exception err) {
setTxtOutput("Error: "+err.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
我在索引处的查询中收到URISyntaxException非法字符
我认为这是因为诸如? , &和! 在我的网址中。我尝试使用:
URLEncoder.encode(myUrl, "UTF-8");
Run Code Online (Sandbox Code Playgroud)
但这给了我另一个错误。
Failed to open http%3A%2F%2Fwww.example.com%2F...........
The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
请您告诉我如何更正URISyntaxException 非法字符错误。
Sot*_*lis 12
您不应该对整个 URL 进行编码,因为 URI 类需要一个有效的协议。仅对参数进行编码
myUrl = "http://www.example.com/engine/myProcessor.jsp?" + URLEncoder.encode("Type=A Type&Name=1100110&Char=!", "UTF-8");
Run Code Online (Sandbox Code Playgroud)
这是因为这里有空格...jsp?Type=A Type&...,您可以将其替换为+
http://www.example.com/engine/myProcessor.jsp?Type=A+Type&Name=1100110&Char=!"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40356 次 |
| 最近记录: |