2013-03-21 14 views
7

mam trochę pracy kod Java, który wykonuje następujące czynności:HttpURLConnection Metoda addRequestProperty Nie przekazywania parametrów

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 

, zauważyłem jednak, że mój dziennik dostęp webserver zawierał zwykłego tekstu hasła dla wszystkich użytkowników podłączonych. Chciałbym to zrobić z dziennika dostępu, ale administratorzy serwera WWW twierdzą, że należy to zmienić w moim kodzie, a nie poprzez konfigurację serwera WWW.

Próbowałem zmiany kodu na następujące kwestie:

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 

Teraz dziennik dostępu nie zawierają metodę login/hasło/żądania. Jednak usługa internetowa generuje teraz wyjątek wskazujący, że nie otrzymał żadnej nazwy użytkownika/hasła.

Co zrobiłem źle w moim kodzie klienta? Próbowałem również używać "setRequestProperty" zamiast "addRequestProperty" i miało to samo zepsute zachowanie.

Odpowiedz

7

faktycznie znalazłem odpowiedź w another question on stackoverflow.

Poprawny kod powinien być następujący:

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

Należy sprawdzić poprawność swoich odpowiedzi ;-) – JonesV

+0

Jones i David możesz mi powiedzieć, że mogę wysłać obraz jako u wysyłanie nazwy użytkownika i hasła? zobacz moje pytanie tutaj http://stackoverflow.com/questions/27615276/how-to-send-data-to-server –

+0

wszystkie posty tutaj przeszukane, które są prawie dokładnie takie same, a twoje rozwiązuje mój problem, dziękuję David! – Rob85

Powiązane problemy