In dieser Übung soll nun der exakte Text zu einem HTTP-Code ausgegeben werden. Hierzu ist der HTTP-Code als Kommandozeilenparameter zu übergeben.
Das HTTP-Protokoll definiert die folgenden Successful-Codes mit Text:
Das HTTP-Protokoll definiert die folgenden Redirection-Codes mit Text:
Das HTTP-Protokoll definiert die folgenden Client-Error-Codes mit Text:
Das HTTP-Protokoll definiert die folgenden Server-Error-Codes mit Text:
Kommandozeilenparameter werden beim Aufruf dem Programm übergeben. Die Parameter werden mit einem Space (Blank)separiert und im Array args[] der Methode main(...) abgelegt. Das folgende Codefragment zeigt die Auswertung und Anzeige von Kommandozeilenparametern:
public static void main (String[] args) {
for (int i=0; i < args.length; i++) {
System.out.println ("param[" + i + "]: " + args[i]);
}}
Beim Ausdruck args[i] handelt es sich um einen String. Dieser String ist nun in einen primitiven int-Datentyp zu konvertieren. Das folgende Codefragment zeigt diese Konversion über die Wrapper-Klasse Integer auf:
int number = Integer.parseInt (args[i]);
In Eclipse eröffnen Sie eine neue Klasse am einfachsten über das Menu New-> Class:
Geben Sie jeder Klasse neben dem Namen ein Package mit.
public class HttpCodeText {
public static void main(String[] args) {
if (args.length < 1) {
System.err.println("no argument specified");
return;
}
for (int i = 0; i < args.length; i++) {
System.out.println("param[" + i + "]: " + args[i]);
}
}
}
Leider ergibt das Programm keine Ausgabe an die Konsole, weil keine Kommandozeilen Parameter definiert sind.
Öffnen Sie nun über das Menu Run->Run Configurations den folgenden Dialog:
Definieren Sie wie im Dialog die Werte "200 302 404 500 -1 600" und lassen Sie das Programm erneut ausführen: Die Konsole sollte die Werte nun korrekt anzeigen:
for (int i = 0; i < args.length; i++) {
System.out.println("param[" + i + "]: " + args[i]);
int httpCode = Integer.parseInt(args[1]);
String text = "";
switch(httpCode) {
case 200: text = "OK"; break;
... TODO ...
default: text = "Unknown"; break;
}
System.out.println(httpCode + ": " + text);
}
Programmieren Sie einige der möglichen Varianten aus.