![]() |
|
Android AsyncTask HTTP POST - Printable Version +- ItsMods (https://www.itsmods.com) +-- Forum: Archive (https://www.itsmods.com/Forum-Archive.html) +--- Forum: Archive (https://www.itsmods.com/Forum-Archive--64.html) +--- Thread: Android AsyncTask HTTP POST (/Thread-Android-AsyncTask-HTTP-POST.html) |
Android AsyncTask HTTP POST - crAyon - 07-26-2012 Code: package com.example.t;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
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.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class Action extends Activity {
private TextView textView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_action);
getActionBar().setDisplayHomeAsUpEnabled(false);
Intent intent = getIntent();
String user = intent.getStringExtra(Home.USER_NAME);
String pass = intent.getStringExtra(Home.PASS_WORD);
String dest = intent.getStringExtra(Home.END_POINT);
download(dest, user, pass);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_action, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
public void download(String endpoint, String user, String pass) {
getHTML task = new getHTML();
task.execute(endpoint, user, pass);
textView = (TextView) findViewById(R.id.textView1);
textView.setText("User: "+ user +" Pass: "+ pass +" URL: "+ endpoint);
}
class getHTML extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... params) {
try {
get_data(params[0], params[1], params[2]);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String result) {
}
}
public String get_data(String dest, String user, String pass) throws IOException{
InputStream is = null;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(dest);
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("email", user));
nameValuePairs.add(new BasicNameValuePair("password", pass));
nameValuePairs.add(new BasicNameValuePair("do","user_login"));
nameValuePairs.add(new BasicNameValuePair("akey", "android_app"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response;
Log.d("http", "Dest: " + dest);
Log.d("http", "User: " + user);
Log.d("http", "Pass: " + pass);
Log.d("http", "Device: " + System.currentTimeMillis());
response = httpclient.execute(httppost);
Boolean outp = request(response);
if(outp) {
Log.i("auth", "Login Successful");
return "0x00";
} else {
Log.i("auth", "Login Failed with " + outp);
return "0x01";
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} finally {
if (is != null) {
is.close();
}
}
return null;
}
public static Boolean request(HttpResponse response){
String result = "";
try{
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null){
str.append(line);
}
in.close();
result = str.toString();
if(str.toString().equals("0")) {
return true;
} else {
return false;
}
}catch(Exception ex){
result = "Error";
}
return false;
}
}RE: Android AsyncTask HTTP POST - crAyon - 07-26-2012 Code: package com.example.t;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import com.workfeed.beta.R;
public class Home extends Activity {
public final static String PASS_WORD = "com.example.t.PASS_WORD";
public final static String USER_NAME = "com.example.t.USER_NAME";
public final static String END_POINT = "com.example.t.END_POINT";
private EditText inputEmail;
private EditText inputPassword;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
}
public void error(String error, String message) {
TextView nstatus = (TextView) findViewById(R.id.nstatus);
nstatus.setTextSize(40);
nstatus.setText(message);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_home, menu);
return true;
}
public void startNet(View view) {
ConnectivityManager connMgr = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
Intent intent = new Intent(this, Action.class);
inputEmail = (EditText) findViewById(R.id.email);
inputPassword = (EditText) findViewById(R.id.password);
String dest = "http://workfeed.co/core/wf_auth.php";
String user = inputEmail.getText().toString();
String pass = inputPassword.getText().toString();
intent.putExtra(USER_NAME, user);
intent.putExtra(PASS_WORD, pass);
intent.putExtra(END_POINT, dest);
startActivity(intent);
} else {
TextView nstatus = (TextView) findViewById(R.id.nstatus);
nstatus.setTextSize(40);
nstatus.setText("No Network...");
}
}
}Code: package com.example.t;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
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.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Looper;
import android.support.v4.app.NavUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import com.workfeed.beta.R;
public class Action extends Activity {
public TextView textView;
public final static String USER_NAME = "com.example.t.USER_NAME";
public final static String INVALID_PASS = "com.example.t.INVALID_PASS";
static final int DIALOG_ERROR_LOGIN = 1;
static final int DIALOG_OK_LOGIN = 2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_action);
getActionBar().setDisplayHomeAsUpEnabled(false);
Intent intent = getIntent();
String user = intent.getStringExtra(Home.USER_NAME);
String pass = intent.getStringExtra(Home.PASS_WORD);
String dest = intent.getStringExtra(Home.END_POINT);
download(dest, user, pass);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_action, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
public void download(String endpoint, String user, String pass) {
getHTML task = new getHTML();
task.execute(endpoint, user, pass);
}
class getHTML extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... params) {
try {
get_data(params[0], params[1], params[2]);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String result) {
}
}
public String get_data(String dest, String user, String pass)
throws IOException {
InputStream is = null;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(dest);
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
4);
nameValuePairs.add(new BasicNameValuePair("email", user));
nameValuePairs.add(new BasicNameValuePair("password", pass));
nameValuePairs.add(new BasicNameValuePair("do", "user_login"));
nameValuePairs
.add(new BasicNameValuePair("akey", "android_app"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response;
Log.d("http", "Dest: " + dest);
Log.d("http", "User: " + user);
Log.d("http", "Pass: " + pass);
Log.d("http", "Device: " + System.currentTimeMillis());
response = httpclient.execute(httppost);
Boolean outp = request(response);
if (outp) {
Log.i("auth", "Login Successful");
final Intent intent = new Intent(this, Workfeed.class);
startActivity(intent);
Action.this.finish();
return "0x00";
} else {
Log.e("auth", "Login Failed with " + outp);
fireAlert(1);
return "0x01";
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} finally {
if (is != null) {
is.close();
}
}
return null;
}
public void fireAlert(final Integer alertID) {
Action.this.runOnUiThread(new Runnable() {
public void run() {
switch (alertID) {
case 1:
showDialog(DIALOG_ERROR_LOGIN);
break;
case 2:
// do the work to define the game over Dialog
break;
}
}
});
}
public Dialog onCreateDialog(int id) {
Dialog dialog;
switch (id) {
case DIALOG_ERROR_LOGIN:
final Intent intent = new Intent(this, Home.class);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Error Logging In")
.setCancelable(false)
.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
startActivity(intent);
Action.this.finish();
}
});
AlertDialog alert = builder.create();
return alert;
case DIALOG_OK_LOGIN:
break;
default:
dialog = null;
}
return null;
}
public static Boolean request(HttpResponse response) {
@SuppressWarnings("unused")
String result = "";
try {
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(
new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
str.append(line);
}
in.close();
result = str.toString();
if (str.toString().equals("0")) {
return true;
} else {
return false;
}
} catch (Exception ex) {
result = "Error";
}
return false;
}
}Code: package com.example.t;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import com.workfeed.beta.R;
public class Workfeed extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_workfeed);
getActionBar().setDisplayHomeAsUpEnabled(false);
TabHost tabHost=(TabHost)findViewById(R.id.tabHost);
tabHost.setup();
TabSpec spec1=tabHost.newTabSpec("Latest");
spec1.setContent(R.id.tab1);
spec1.setIndicator("Latest");
TabSpec spec2=tabHost.newTabSpec("All");
spec2.setIndicator("All");
spec2.setContent(R.id.tab2);
TabSpec spec3=tabHost.newTabSpec("Profile");
spec3.setIndicator("Profile");
spec3.setContent(R.id.tab3);
tabHost.addTab(spec1);
tabHost.addTab(spec2);
tabHost.addTab(spec3);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_workfeed, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
Intent intent = new Intent(this, Home.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
}
} |