我使用URL类访问IIS6.0服务器上的一个页面,在这个web页面中,使用了redirect进行url重定向,
我的程序是这样写的
  BufferedReader br = null;
  url = new java.net.URL("http://www.***.com/a.aspx");
  br = new BufferedReader(new InputStreamReader(url.openStream()));
  br.readLine();提示的异常是这样的,
java.net.MalformedURLException: no protocol: /(fm4arl45x2ajblm0ghiiacvw)/a.aspx
at java.net.URL.<init>(URL.java:579)
at java.net.URL.<init>(URL.java:476)
at java.net.URL.<init>(URL.java:425)
at sun.net.www.protocol.http.HttpURLConnection.followRedirect(HttpURLConnection.java:1081)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:675)
at java.net.URL.openStream(URL.java:960) 
我就试着直接访问这个url,/(fm4arl45x2ajblm0ghiiacvw)/a.aspx可是这个是一个动态生成的,访问的时候读取出来是null,web服务程序不是我写的,也没有办法看到web服务程序的源码,
请哪位高手能够帮我解决,先谢谢了。

解决方案 »

  1.   

    抛出这一异常指示出现了错误的URL。或者在规范字符串中找不到任何合法协议,或者无法分析字符串。 
    异常就是在url.openStream()的时候发生的,所以没有内容。
    我也分析不出原因,如果你把完整的url告诉大家,可能会有人帮你。
      

  2.   

    (fm4arl45x2ajblm0ghiiacvw)应该就是非法字符吧,好像还没有见过url中包含括号的。最好可以尝试一下访问别的在IE中能正常访问的url,比如http://community.csdn.net/Expert/topic/5106/5106148.xml?temp=.4596979,看看是否能正常运行,能就说明程序应该没问题,很可能是URL不对
      

  3.   

    不是因为非法字符的原因,我在我自己机器上尝试了,比如说我在a.jsp中使用response.sendRedirect("b.jsp");这样通过URL类来访问a.asp时,也会提示相同的错误,就是java.net.MalformedURLException: no protocol: /b.jsp,应该是URL这个类对于服务器端使用了重定向时没有处理好还是什么原因。不知道这个问题怎么解决。既然通过ie是可以访问的,那么说明这个URL肯定是合法的了。
      

  4.   

    感觉好像是因为jdk版本的问题,我自己机器上用的是1.4版本的,我换了一台机器,是1.5版本的,就没有报这个异常了。
      

  5.   

    主要是因为你的URL有非法符号,它解析不了
      

  6.   

    那为什么使用IE能够正常访问呢?既然ie能够访问,应该说使用程序效果是差不多的啊。