Przesłanie dużej ilości danych do skryptu PHP

0

Witam. Zrobiłem "okienko do rysowania" w mojej aplikacji na androida. Użytkownik jak rysuje to jest to zapisywane w formie krzywych w taki sposób:

ArrayList<Line> lines;

//dafinica Line:
public class Line {
ArrayList<PointF> points;
}

line - typ dla krzywej
lines - zbiór krzywych
lines.points - zbiór pubktów dla danej krzywej

typ PointF można zdefinciować tak:

ArrayList<Line> lines;
public class PointF {
float x;
float y;
}

Muszę te dane wysyłać do skryptu php. Użyłem do tego takiego kodu:

n = 0;
while(n < lines.size()){
  i = 0;
  while (i < lines.get(n).points.size()){
	  data+=String.valueOf(lines.get(n).points.get(i).x);
	  data+="a";
	  data+=String.valueOf(lines.get(n).points.get(i).y);
	  if(i<size-1)data+="b";
	  i++;
	  }
	if(n<lines.size()-1)data+="c";
	n++;
}

url = new URL("http://abc.pl/skrypt.php?data=" + data);
URLConnection con = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String strL;
String str ="";
while ((strL = in.readLine()) != null) {
   str += strL;
}
in.close();

Litery oddzielają dane i przy użyciu preg_split w PHP tworzę strukturę taką jak wyżej przedstawiłem (w javie) i na niej wykonuje pozostałe operacje. Niestety nie jest to dobry sposób przesyłania dużej ilości danych. Przy kilku krzywych z wieloma punktami adres url jest bardzo długi, wszystko wolno działa i często nie udaje się przesłać danych w całości. W jaki sposób najlepiej przesyłać te dane? Przy okazji rady jak przechowywac je w bazi danych też byłby mile widziane :)

P.s kod tutaj zamieszczony został "przycięty" tak, żeby wystraczyć do rozwiązania problemu, bez zbędnego pisania. W rzeczywistości jest jeszcze obsługa timeout, itd.

0

Metoda POST, tam parametry nie są dołączane do URL przez co możesz przesłać ile chcesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1