我想在http(如WebDAV)之上构建一个协议。所以使用HttpURLConnection是有意义的,因为它包含所有基本方法,响应代码等。不幸的是,它阻止设置其他方法,如:
=IF(OR(Sheet1!A1="?",Sheet2!A1="?",Sheet3!A1="?"),"Check","")
抛出一个ProtocolException无效方法MyMethod。
所以我扩展了它并覆盖了#34; setRequestMethod(String)"接受" MyMethod"。这不起作用,因为URL仅返回HttpURLConnection。有没有办法使用HttpURLConnection接受其他方法?
答案 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()