如何扩展HttpURLConnection以支持其他方法?

时间:2017-03-13 19:56:39

标签: java http url

我想在http(如WebDAV)之上构建一个协议。所以使用HttpURLConnection是有意义的,因为它包含所有基本方法,响应代码等。不幸的是,它阻止设置其他方法,如:

=IF(OR(Sheet1!A1="?",Sheet2!A1="?",Sheet3!A1="?"),"Check","")

抛出一个ProtocolException无效方法MyMethod。

所以我扩展了它并覆盖了#34; setRequestMethod(String)"接受" MyMethod"。这不起作用,因为URL仅返回HttpURLConnection。有没有办法使用HttpURLConnection接受其他方法?

3 个答案:

答案 0 :(得分:0)

您可能希望考虑RESTful接口。你仍然使用http werbs,但你升级,不看,可以做任何界面,使用工厂,如:

public String readFileAsString(String url) {
    String result = null;
    try {
        Client client = Client.create();
        WebResource webResource = client.resource(url);
        ClientResponse response = webResource.type("text/plain").get(ClientResponse.class);
        result= response.getEntity(String.class);
        response.close();
    } catch (Exception e) {
        e.printStackTrace();
        result = "";
    }

    return result;
}

答案 1 :(得分:0)

请不要,我告诉你这是因为我在java开始编程时遇到了同样的错误并且没有付清。

问自己这个问题,您是否会将子类传递给接受父类的函数/方法/构造函数?

例如,您是否会将HttpURLConnection和MyServiceURLConnection混合在一起。

如果不是这样,那么使用HttpURLConnection提供低级别操作的全新类将会更好。

答案 2 :(得分:0)

url dosent返回HTTPURLConnection,它返回URLConnection,因为你没有强制转换它 所以你不能覆盖HTTPURlConnection方法setRequestMethod()