- Forum-Beiträge: 5
27.12.2016, 14:38:26 via Website
27.12.2016 14:38:26 via Website
Hallo, ic h habe immer wieder mal Probleme mit der Metode "urlConnection.getInputStream()". Mal funktionierts mal nicht und ich weiß nicht woran es liegt. Hier ein Codebeispiel:
import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Lothar on 26.12.2016.
*/
public class Charakter {
String username;
int ep, lvl, hp, hpmax, gs;
Charakter(String username, int ep, int lvl, int hp, int hpmax, int gs){
this.username = username;
this.ep = ep;
this.lvl = lvl;
this.hp = hp;
this.hpmax = hpmax;
this.gs = gs;
}
public void speichern(){
try
{
URL url = new URL("meine URL");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
urlConnection.getOutputStream().write(("daten= ").getBytes());
urlConnection.getOutputStream().write((username+",").getBytes());
urlConnection.getOutputStream().write((Integer.toString(ep)+",").getBytes());
urlConnection.getOutputStream().write((Integer.toString(lvl)+",").getBytes());
urlConnection.getOutputStream().write((Integer.toString(hp)+",").getBytes());
urlConnection.getOutputStream().write((Integer.toString(hpmax)+",").getBytes());
urlConnection.getOutputStream().write((Integer.toString(gs)+",").getBytes());
InputStream is = urlConnection.getInputStream();
InputStreamReader input = new InputStreamReader(is, "UTF8");
BufferedReader reader = new BufferedReader(input, 2000);
final List<String> list = new ArrayList<String>();
String line = reader.readLine();
while (line != null) {
list.add(line);
line = reader.readLine();
}
urlConnection.disconnect();
}catch(IOException e){
Log.e("Error","Es ist ein Fehler aufgetreten " + e);
}
}
}
Die Klasse wird von einer activity aufgerufen und schreibt einige Daten über ein php-script in eine MySql-Datenbank. Das php-script gibt die Daten zur Kontrolle durch echo zurück.
Das Programm wirft eine IO-Exception bei " InputStream is = urlConnection.getInputStream();"
Setze ich die Zeile vor "urlConnection.getOutputStream().write(("daten= ").getBytes());", bekomme ich den Inputstream. Dann jedoch steigt das Programm in der nächsten Zeile aus bei "urlConnection.getOutputStream().write(("daten= ").getBytes());".
Ist es so, dass sich Input und Output in die Quere kommen? Seltsam dann nur, dass es manchmal funktioniert.
Im Log habe ich übrigens keine Fehlermeldung gefunden.
Vielleicht weiß ja jemand weiter.
Gruß Lothar.
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.