# HttpURLConnection überschreiben



## fomobrain (10. Dez 2007)

Hallo Community,

habe ein Problem beim Zugriff auf einen WebDav-Server. Möchte mit java.net.HttpURLConnection eine Verbindung aufbauen. Gehe dabei folgendermaßen vor.


```
URL url = new URL("http://testsrv/");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
```

Im Anschluss übergebe ich ein paar Propertys und eine XML als Requestbody.
Das Problem dabei ist das ich die WebDav-Methode "PROPPATCH" übegeben können muss das meine Werte korrekt interpretiert werden. Aus für mich nicht nachvollziehbaren Gründen ist die setRequestMethod Methode von java.net.HttpURLConnection aber auf HTTP beschränkt.  


```
connection.setRequestMethod("PUT");
```

Daher hab ich mir gedacht einfach, die Klasse zu überschreiben und das Array, welches dabei iteriert wird einfach zu überschreiben. Dabei bekomme ich dann aber ein ClassCastException beim Aufruf der URL: 

```
MyHttpURLConnection connection = (MyHttpURLConnection) url.openConnection();
```

Hat jemand ne Idee wie ich das Problem lösen oder umgehen kann? Bin für jede Art von Hinweis dankbar... :lol


----------



## HoaX (10. Dez 2007)

weil openConnection keine HttpURLConnection zurück gibt? kannst die ja die klasse des objekts ausgeben lassen.

wieso nimmst du eigentlich nich eine fertige webdav lib?


----------



## fomobrain (10. Dez 2007)

ich will ja eigentlich nur der setRequestMethode  zwei eigene Strings übergeben, daher dacht ich das Überschreiben die eleganteste Lösung wäre... Ne ganze lib benötige ich eigentlich nich und das jazzrabbit projekt (http://jackrabbit.apache.org/doc/components/webdav.html)  is bis jetzt nur dehr wenig dokumentiert bis jetzt, damit komm ich nich klar. 

ja klar intern wird sun.net.www.protocol.http.HttpURLConnection instanziert aber auch die muss ich doch irgendiwe überschreiebn können, so das das casting noch hinhaut und ich trotzdem die setRequest;ethode überschrieben kann

Ne Idee ???


----------

