Gerade im Bereich der App Entwicklung möchte man Inhalte über das Web abrufen und in der Applikation weiterverarbeiten.
Oft ist es aber auch notwendig Daten zum Server zu schicken und diese dort zu speichern.
Daher habe ich mir meine JSONServer.class auseinander gepflügt um hier die einzelnen Punkte nieder zu schreiben.
Für meine Zwecke habe ich folgende Bibliotheken in meine JSONServer.class importiert:
- import org.apache.http.NameValuePair;
- import org.apache.http.client.ClientProtocolException;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.ResponseHandler;
- import org.apache.http.client.entity.UrlEncodedFormEntity;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.impl.client.BasicResponseHandler;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.message.BasicNameValuePair;
- import org.apache.http.params.BasicHttpParams;
- import org.apache.http.params.HttpConnectionParams;
- import org.apache.http.params.HttpParams;
import org.json.JSONObject;
Um mit dem Ergebnis des Servers weiter zu arbeiten nutze ich das JSONObject in der Applikation.
Um ein neues JSONObject zu erstellen benötigt man nicht viel Code:
JSONObject json = new JSONObject(„{name:“JSON STRING“});
Nun steht ein aus dem JSONSTring abgeleitetes Objekt zur Verfügung. Möchte ich nun den wert von „name“ auslesen
Aufbau der httpParameter:
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,
TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
und des HttpClient sowie HttpPost:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(ServerUrl);
Erstellen eines NameValuePairs für die Post Daten:
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair(„user“, „wert“));
nameValuePairs.add(new BasicNameValuePair(„lat“, „Wert“)));
nameValuePairs.add(new BasicNameValuePair(„lng“, „Wert“)));
Und absenden :
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httppost, responseHandler);
Anschließend den Response zum JsonObject übergeben:
JSONObject json = new JSONObject(responseBody);