Keine Leerzeichen mit GET-Methode



  • Hallo,

    ich möchte mit GET-Methode die Daten an den Server übertragen.
    Letztlich sieht der übergebene String so aus.
    Die Daten werden aus einer Datei eingelesen und hinten angehängt.

    // buffer: Daten aus der Datei
    String data = new String(buffer, 0, size); 
    String realdata = URLEncoder.encode(data, "UTF-8");
    
    String s = "*server_addresse_und_login_daten*****&filecontent="+ realdata;
    URL url = new URL(s);
    url.openStream();
    

    u.s.w.
    Alles OK, Daten werden übertragen.

    Leider kommen beim Server nicht alle 88 Zeichen an, sondern nur 80. (Hier nur als Beispiel).
    Die Datei endet mit vielen Leerzeichen und ein Paar Zeichenumbrüchen.
    Woran kann's liegen?

    Mit POST-Methode habe ich's auch schon versucht. Krieg's nicht hin, der Server sagt keine POST-Daten.

    Hoffe jemand kennt sich damit aus und kann mir helfen.
    Danke.



  • Leerzeichen und andere Sonderzeichen müssen kodiert werden.

    Im Falle des Leerzeichens wird daraus ein %20



  • Danke für die Antwort,

    ich weiß, dass die Leerzeichen und Sondereichen kodiert werden müssen.

    Die Kodierung geschieht durch die folgende Zeile:

    URLEncoder.encode(buffer, "UTF-8");
    

    Also UTF-8 Kodierung.

    Würde es nicht kodiert werden und sind Leerzeichen und Zeilenumbrüche drin, so wird eine Exception geworfen.

    Man könnte immer ein gültiges Zeichen hinten anhängen, senden und auf dem Server das letzte Zeichen aus der Datei entfernen. Allerdings ist es auf dem Server nicht möglich die Datei irgendwie zu modifizieren.
    Nur Up- und Download.


Anmelden zum Antworten