# Suche Klasse um Paramater zu einer URL hinzuzufügen.



## mlange8801 (31. Mrz 2006)

Hallo,

kennt jemand eine Klasse, mit der man einfach Parameter zu einer URL oder URI setzen/hinzufügen kann.
Also z.B:

```
[url]http://www.java-forum.org/de/posting.php[/url]
[url]http://www.java-forum.org/de/posting.php?mode=xyz&amp;f=23[/url]
[url]http://www.java-forum.org/de/posting.php?mode=xyz&f=23[/url]
[url]http://www.java-forum.org/de/posting.php?f=23[/url]
...
```
soll dann nach 
gesuchteklasse.setParameter("mode","newtopic");
gesuchteklasse.getURL();


```
[url]http://www.java-forum.org/de/posting.php?mode=newtopic[/url]
[url]http://www.java-forum.org/de/posting.php?mode=newtopic&f=23[/url]
[url]http://www.java-forum.org/de/posting.php?mode=newtopic&f=23[/url]
[url]http://www.java-forum.org/de/posting.php?mode=newtopic&f=23[/url]
...
```
oder so ähnlich...

Danke 
mark


----------



## The_S (31. Mrz 2006)

Da kannste dir (je nachdem wie komplex es werden soll) mit Pattern oder String Methoden wie substring und indexOf leicht was selber basteln.


----------



## KSG9|sebastian (31. Mrz 2006)

das ist doch easy 

an die URL ein ? hängen, dann jeden Parameter mit &name=value anhängen (bis auf den ersten, der ohne '&') 
URL ermitteln: 


```
String paramString = url.split(url.indexOf("?") + 1);
String[] nameValuePairs = paramString.split("&");
HashMap parameters = new HashMap();
String key = null;
String val = null;
for(int i=0; i<nameValuePairs.length; i++){
   key = nameValuePairs[i].split("=")[0];
   val = nameValuePairs[i].split("=")[1];
   parameters.put(key, val);
}
```


----------



## mlange8801 (31. Mrz 2006)

Schon klar, dass man sich das selber basteln kann.
Ich dachte halt, dass es das garantiert schon gibt und ich mir das durchlesen von
http://www.ietf.org/rfc/rfc2396.txt sparen könnte


```
String paramString = url.split(url.indexOf("?") + 1); 
String[] nameValuePairs = paramString.split("&"); 
HashMap parameters = new HashMap(); 
String key = null; 
String val = null; 
for(int i=0; i<nameValuePairs.length; i++){ 
   key = nameValuePairs[i].split("=")[0]; 
   val = nameValuePairs[i].split("=")[1]; 
   parameters.put(key, val); 
}
```

Das "&" kann ja (oder sollte afaik) auch als &amp; kodiert sein.
Ggf. ja auch noch anders (unicode?)...


----------

