michaelbeersnl
Gebruiker
- Lid geworden
- 30 nov 2011
- Berichten
- 57
Beste helpers,
Ik moet voor school een Android applicatie maken.
Tot nu toe gaat dit allemaal goed en zijn we inmiddels beland bij de database.
Omdat de JDBC library voor telefoons te zwaar is werd er op meerdere fora geadviseerd om te werken met een PHP API en de HTTP classes in java.
Nu heb ik de volgende code geschreven maar ik krijg continue exceptions terwijl naar mijn idee de code gewoon goed is...
Alvast bedankt,
Michael
Edit: Imiddels gelukt, vergeten StrictMode aan te zetten anders werkt het niet in Android 4.0+
Ik moet voor school een Android applicatie maken.
Tot nu toe gaat dit allemaal goed en zijn we inmiddels beland bij de database.
Omdat de JDBC library voor telefoons te zwaar is werd er op meerdere fora geadviseerd om te werken met een PHP API en de HTTP classes in java.
Nu heb ik de volgende code geschreven maar ik krijg continue exceptions terwijl naar mijn idee de code gewoon goed is...
Code:
package com.kleinrome;
import java.util.ArrayList;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import com.kleinrome.util.PostHttp;
import android.os.Bundle;
import android.util.Log;
import android.app.Activity;
public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Test
PostHttp post = new PostHttp();
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username","abcd"));
post.connect(params, "http://192.168.0.189/kleinrome/index.php");
Log.e("test", post.result);
}
}
Code:
package com.kleinrome.util;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import android.util.Log;
public class PostHttp {
public InputStream is = null;
public String result = "";
// --------------------------------------------------
/**
* Create a new HTTP post request and response a json array.
*
* @param params
* @param url
* @return
*/
public JSONArray jsonConnect(ArrayList<NameValuePair> params, String url) {
//Make a connection.
connect(params, url);
return null;
}
// --------------------------------------------------
/**
* Create a new HTTP post Request.
*
* @param params
* @param url
*/
public void connect(ArrayList<NameValuePair> params, String url)
{
try {
//Setup the client.
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(params));
//Do the request and get the response.
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
//Save data
is = entity.getContent();
}
catch (Exception e) {
Log.e("log_tag", "Error in http connection: " + e.toString());
}
}
/**
* Get the HTTP post response.
*/
public void getPostResponse()
{
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
Log.e("getpostresponse", "Post result: " + sb.toString());
}
catch (Exception e) {
Log.e("log_tag", "Error converting result: " + e.toString());
}
}
/**
* Return the result as Json array.
*
* @return
*/
public JSONArray getJsonArray()
{
try {
JSONArray jArray = new JSONArray(result);
return jArray;
}
catch (JSONException e)
{
Log.e("log_tag", "Error parsing data: " + e.toString());
return null;
}
}
}
Alvast bedankt,
Michael
Edit: Imiddels gelukt, vergeten StrictMode aan te zetten anders werkt het niet in Android 4.0+
Laatst bewerkt: