Wie sollte ich java.lang.IllegalArgumentException auflösen: protocol = https host = null Ausnahme?

7

Ich arbeite an einem SSL-Client-Server-Programm und ich muss die folgende Methode wiederverwenden.

%Vor%

Hier wird ServerURL als

initialisiert %Vor%

Wenn ich versuche, diese Methode auszuführen, bekomme ich eine Ausnahme bei Line,

  

OutputStream os = conn.getOutputStream ();

Die Ausnahme ist

%Vor%

Was ist der Grund dafür?

    
Chathuranga Chandrasekara 27.04.2009, 12:17
quelle

2 Antworten

18

URLs verwenden Schrägstriche (/), nicht rückwärts (wie Windows). Probieren Sie:

%Vor%

Der Grund für den Fehler besteht darin, dass die URL-Klasse den Host-Teil der Zeichenfolge nicht analysieren kann und daher host ist null .

    
Aaron Digulla 27.04.2009, 12:23
quelle
3

Dieser Code scheint völlig unnötig:

%Vor%
  1. serverURLS erhält das Ergebnis von getRecipientURL(message)
  2. Dann überschreiben Sie sofort den Wert von serverURLS und machen die vorherige Aussage zu einem Deadstore
  3. Dann, weil if (serverURLS != null) zu true ausgewertet wird, da Sie nur der Variablen einen Wert in der vorhergehenden Anweisung zugewiesen haben, weisen Sie serverURL einen Wert zu. Es ist unmöglich, dass if (serverURLS != null) auf false ! Auswertet!
  4. Sie verwenden niemals die Variable serverURLS über die vorherige Codezeile hinaus.

Sie könnten all dies mit nur ersetzen:

%Vor%     
matt b 27.04.2009 12:59
quelle

Tags und Links