当前位置: 首页 > 面试题库 >

用于非标准HTTP端口源的URLConnection FileNotFoundException

柏阳炎
2023-03-14
问题内容

我试图使用Apache Ant
Get任务来获取由我们公司的另一个团队生成的WSDL列表。他们将它们托管在http://....com:7925
/ services /
上的weblogic
9.x服务器上。我可以通过浏览器访问页面,但是在尝试将页面复制到本地文件进行解析时,get任务给了我FileNotFoundException。我仍然能够获得(使用ant任务)没有HTTP非标准端口80的URL。

我浏览了Ant源代码,并将错误范围缩小到URLConnection。似乎URLConnection不能识别数据为HTTP流量,因为它不在标准端口上,即使该协议被指定为HTTP。我使用WireShark嗅探了流量,并且该页面在整个导线上均正确加载,但仍然收到FileNotFoundException。

在此示例中,您将看到错误(更改了URL以保护无辜者)。在 connection.getInputStream() 上引发错误

import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

    public class TestGet {
    private static URL source; 
    public static void main(String[] args) {
        doGet();
    }
    public static void doGet() {
            try {
            source = new URL("http", "test.com", 7925,
                    "/services/index.html");
            URLConnection connection = source.openConnection();
            connection.connect();
            InputStream is = connection.getInputStream();
        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }

}

问题答案:

检查服务器返回的响应代码



 类似资料: