Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich habe eine wahrscheinlich einfache Frage für viele von euch. Ich habe ein Tutorial angeschaut, welches sich mit Senden und Empfangen von Informationen an ein PHP-Script beschäftigt. Ich habe das ganze mal nachgebaut und kappiere auch wie es funktioniert. Nur ein kleines Problem ist da noch. Mit folgender Methode empfange ich die Daten des Scripts:
Code:
public String read() throws IOException {
if (con == null) {
con = sitepath.openConnection();
}
InputStream in = con.getInputStream();
int c = 0;
StringBuffer incoming = new StringBuffer();
while (c >= 0) {
c = in.read();
incoming.append((char) c);
}
return incoming.toString();
}
Das Funktioniert auch soweit. Nur habe ich immer am Schluss " ?" (Space,Fragezeichen). Ich habe mal irgendwo gelesen, dass ein ? das Ende des Strings bedeutet. Aber ich brauch das nicht. Und woher kommt noch das Leerzeichen? Muss ich das irgendwie in einer bestimmten Formatierung senden oder wieso klappt das nicht? Ansonsten klappt alles super. Gemäss dem Tut sollte das Leerzeichen und das Fragezeichen nicht ausgegeben werden, aber ich habe es 1:1 übernommen.
Hm mit PHP kenn ich mich nicht aus.
Aber wenn es wirklich immer so ist, kannst du ja per Hand die letzten
2 Zeichen immer abschneiden, bevor du den String von der Methode returnen lässt.
Danke für deine Antwort. Ja das habe ich mir auch schon übelegt. Aber mich interessiert halt, wieso dass es bei mir nicht klappt und bei demjenigen der das Tut geschrieben hat schon. Muss ja einen Grund haben. Vorübergehend kann ich das so als Lösung machen, aber sauber ist es nicht .
Also, wenn sonst wer noch eine Idee hat, an was es liegen könnte; ich bin ganz Ohr .
Hm das klappt nicht so richtig. Weil da irgendwie noch die () fehlen bei in.read.., aber wenn ich sie hinmache gibt es ein Fehler und wenn ich es wie folgt mache:
Code:
while (c > 0) {
c = in.read();
incoming.append((char) c);
}
Gibt er mir gar nichts zurück...
EDIT Ah logisch, weil die Bedingung gleich erfüllt ist . Aber wie lautet die richtige Syntax für deine Variante?
So habs jetzt folgendermassen:
Code:
while ((c = in.read()) > 0) {
incoming.append((char) c);
}
Allerdings ist da immer noch ein Leerzeichen am Ende zuviel...