2017-12-08 1 views
0

Ich versuche eine URL zu erstellen, die ich in einer POST-Anfrage verwenden werde. Die ausgefüllte URL sieht ungefähr so ​​aus:Wenn ich eine URL-Zeichenfolge habe, aber ein Teil ist dynamisch, sollte ich es in zwei Teile zerlegen oder kann ich eine Variable in die Mitte einfügen?

http://somesite.com/post/member/{AccountNumber}/verify/etc 

Die Kontonummer wird dynamisch sein.

, die leicht genug getan werden kann, durch so etwas wie dies mit:

String PATH1 = "http://somesite.com/post/member/" 
String PATH2 = "/verify/etc" 
String accountNumber;  //set account Number somewhere in the code 

public String buildURL(String path1, String path2, String accoundNumber) { 
    String url = path1 + accountNumber + path2 
    return url; 
} 

ich mich gefragt, ob ich diese sauber mehr tun könnte, nur einen PATH, indem. Ich möchte den Pfad von einer Yml- oder Eigenschaftendatei lesen und dann die AccountNummer dynamisch einfügen. Ist es möglich, dies zu tun?

Also, meine buildURL würde wie folgt aussehen:

String PATH = http://somesite.com/post/member/{AccountNumber}/verify/etc 
String accountNumber;  //set account Number somewhere in the code 

public String buildURL(String path, String accoundNumber) { 
    String url = path{insert AccountNumber somehow} 
    return url; 
} 

Oder sollte ich nur Stick mit ihm in zwei brechen (ich dies Grübeln?)? Vielen Dank.

EDIT: Ich weiß, ich habe einige Begriffe missbraucht. Nicht 100 $ sicher, wenn es 'PATH1', 'PATH2' usw. genannt werden sollte, nachdem ich hier nachgesehen habe: What is the name of this URL part? Es scheint, als ob ich den 'Schema' und 'Autorität' Teil der URL als PATH1 einfüge.

Antwort

1

Sie haben zwei verschiedene Mechanismen in Java, dies zu erreichen:

java.text.MessageFormat

String url = MessageFormat.format("http://somesite.com/post/member/{0}/verify/etc","1234567"); 
    System.out.println(url); 

java.util.Formatter:

Formatter f = new Formatter(new StringBuilder()); 
    f.format("http://somesite.com/post/member/%s/verify/etc", "1234546"); 
    System.out.println(f.toString()); 
+0

Danke für die Hilfe! Das war genau das, wonach ich suchte. – SuperCow

Verwandte Themen