2013-03-21 12 views
7

Ich habe einige Arbeit Java-Code, der macht folgendes:HttpURLConnection addRequestProperty Methode nicht Geben von Parametern

URL myUrl = new URL("http://localhost:8080/webservice?user=" + username + "&password=" + password + "&request=x"); 

HttpURLConnection myConnection = (HttpURLConnection) myUrl.openConnection(); 
myConnection.setRequestMethod("POST"); 

// code continues to read the response stream 

jedoch bemerkte ich, dass mein Webserver Zugriffsprotokoll das Klartext-Passwort für alle Benutzer enthalten, die verbunden sind. Ich möchte dies aus dem Zugriffsprotokoll herausholen, aber die Webserver-Admins behaupten, dass dies in meinem Code geändert werden muss und nicht über die Webserver-Konfiguration.

Ich habe versucht, den Code auf die folgende Veränderung:

URL myUrl = new URL("http://localhost:8080/webservice"); 

HttpURLConnection myConnection = (HttpURLConnection) myUrl.openConnection(); 
myConnection.setRequestMethod("POST"); 
// start of new code 
myConnection.setDoOutput(true); 
myConnection.addRequestProperty("username", username); 
myConnection.addRequestProperty("password", password); 
myConnection.addRequestProperty("request", "x"); 

// code continues to read the response stream 

Nun ist die Zugriffsprotokoll enthält nicht den Benutzername/Passwort/Request-Methode. Der Webservice löst jetzt jedoch eine Ausnahme aus, die angibt, dass er keinen Benutzernamen/Passwort erhalten hat.

Was habe ich in meinem Clientcode falsch gemacht? Ich habe auch versucht, "setRequestProperty" anstelle von "addRequestProperty" und es hatte das gleiche gebrochene Verhalten.

Antwort

7

Ich fand die Antwort in another question on stackoverflow.

Der richtige Code sein sollte:

URL myUrl = new URL("http://localhost:8080/webservice"); 

HttpURLConnection myConnection = (HttpURLConnection) myUrl.openConnection(); 
myConnection.setRequestMethod("POST"); 
myConnection.setDoOutput(true); 

DataOutputStream wr = new DataOutputStream(myConnection.getOutputStream()); 
wr.writeBytes("username=" + username + "&password="+password + "&request=x"); 

// code continues to read the response stream 
+0

Sie sollten Ihre Antwort bestätigen ;-) – JonesV

+0

Jones und David können Sie mir sagen, dass ich Bild als u schicken Benutzername und Passwort senden ?? Siehe meine Frage hier http://StackOverflow.com/Questions/27615276/How-to-Send-Data-to-Server –

+0

alle Beiträge hier habe ich gesucht, die fast genau die gleichen sind und deins löst mein Problem, danke David! – Rob85

Verwandte Themen