Tuesday 19 March 2013

Send data using HTTP POST Method


"Send data using HTTP POST."

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 java.util.regex.Matcher;
import java.util.regex.Pattern;

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.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class RArequestForm extends Activity {

private EditText etIraFirsNm, etIraLnm, etIraEmail, etIraPhone, etIraAddrss, etIraZip, etIraCity;
private TextView tvIraText;
private Button btnIraLogin, btnIraSubmit;
private Spinner spState, spPackageSize, spPrefContct, spTimeToCall;
private CheckBox chkIRAMktUpdt;
private boolean isValidation, stateSelectd, packageSelectd;

String states[] = { "Select State*", "Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware",
"District Of Columbia", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana",
"Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada",
"New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania",
"Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia",
"Wisconsin", "Wyoming" };
String stateValues[] = { "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME",
"MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN",
"TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY" };
String packageSize[] = { "Package Size*", "$5,000-$20,000", "$20,000-$50,000", "$50,000-$100,000", "$100,000+" };
String prefMethod[] = { "Preferred Method of Contact", "By Phone", "By Email" };
String bestTimeToCall[] = { "Best Time To Call", "Morning", "Afternoon", "Evening" };

private String IraFirsNm, IraLnm, IraEmail, IraPhone, IraAddrss, IraZip, IraCity, state, pkgSize, prefContact, TimeTocll;
private String chkMktUpdt = "true";

private ProgressDialog m_ProgressDialog = null;
private String Result;
public static boolean IsExcption = false;
private int NewId, AffectedRows;
private boolean IsSuccess = false;
private String Message, DetailError, DetailMessage;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ira_request_form);

setView();

btnIraLogin.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub

}
});

btnIraSubmit.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
if (validation()) {
// Hide Keyboard
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

IraFirsNm = etIraFirsNm.getText().toString();
IraLnm = etIraLnm.getText().toString();
IraEmail = etIraEmail.getText().toString();
IraPhone = etIraPhone.getText().toString();
IraAddrss = etIraAddrss.getText().toString();
IraZip = etIraZip.getText().toString();
IraCity = etIraCity.getText().toString();
state = spState.getSelectedItem().toString();
pkgSize = spPackageSize.getSelectedItem().toString();
prefContact = spPrefContct.getSelectedItem().toString();
TimeTocll = spTimeToCall.getSelectedItem().toString();

RARequestTask reqTask = new RARequestTask();
reqTask.execute();

}
}
});

ArrayAdapter stateAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, states);
spState.setAdapter(stateAdapter);

spState.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
if(arg2==0) { stateSelectd = false; } else { stateSelectd = true; }
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
stateSelectd = false;
}
});

ArrayAdapter packgSizeAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, packageSize);
spPackageSize.setAdapter(packgSizeAdapter);

spPackageSize.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
if(arg2==0)
{
packageSelectd = false;
}
else
{
packageSelectd = true;
}
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
packageSelectd = false;
}
});

ArrayAdapter prefMethodAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, prefMethod);
spPrefContct.setAdapter(prefMethodAdapter);

spPrefContct.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});

ArrayAdapter bestTimeTocallAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, bestTimeToCall);
spTimeToCall.setAdapter(bestTimeTocallAdapter);

spTimeToCall.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});

}

private void setView() {

etIraFirsNm = (EditText) findViewById(R.id.etIraFname);
etIraLnm = (EditText) findViewById(R.id.etIraLastname);
etIraEmail = (EditText) findViewById(R.id.etIraEmail);
etIraPhone = (EditText) findViewById(R.id.etIraPhone);
etIraAddrss = (EditText) findViewById(R.id.etIraAddress);
etIraZip = (EditText) findViewById(R.id.etIraZipCode);
etIraCity = (EditText) findViewById(R.id.etIraCity);
tvIraText = (TextView) findViewById(R.id.tvIraDetail);
btnIraLogin = (Button) findViewById(R.id.btnIraLogin);
btnIraSubmit = (Button) findViewById(R.id.btnIraSubmit);
spState = (Spinner) findViewById(R.id.spIraSelectState);
spPackageSize = (Spinner) findViewById(R.id.spIraPackageSize);
spPrefContct = (Spinner) findViewById(R.id.spIraPreferdMethod);
spTimeToCall = (Spinner) findViewById(R.id.spIraBestTimetoCall);
chkIRAMktUpdt = (CheckBox) findViewById(R.id.chkBoxIRAReceiveMktUpdt_ira);

chkIRAMktUpdt.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
chkMktUpdt=String.valueOf(arg1);
}
});
}

private boolean validation() {
if (etIraFirsNm.getText().toString().equalsIgnoreCase("") || (etIraFirsNm.getText().toString().trim().length() == 0)) {
System.out.println(" Please enter F Name");
Toast.makeText(getApplication(), "Please Enter First Name", Toast.LENGTH_SHORT).show();
isValidation = false;
} else if (etIraLnm.getText().toString().equalsIgnoreCase("") || (etIraLnm.getText().toString().trim().length() == 0)) {
System.out.println(" Please enter L Name");
Toast.makeText(getApplication(), "Please Enter Last Name", Toast.LENGTH_SHORT).show();
isValidation = false;
} else if (etIraEmail.getText().toString().equalsIgnoreCase("") || (etIraEmail.getText().toString().trim().length() == 0)) {
System.out.println(" Please enter EmailAdd");
Toast.makeText(getApplication(), "Please Enter Email Address", Toast.LENGTH_SHORT).show();
isValidation = false;
} else if (!emailValidation(etIraEmail.getText().toString())) {
System.out.println(" Please enter Valid EmailAdd");
Toast.makeText(getApplication(), "Please Enter Valid Email Address", Toast.LENGTH_SHORT).show();
isValidation = false;
} else if (etIraPhone.getText().toString().equalsIgnoreCase("") || (etIraPhone.getText().toString().trim().length() == 0)) {
System.out.println(" Please enter Phone Number");
Toast.makeText(getApplication(), "Please Enter Phone Number", Toast.LENGTH_SHORT).show();
isValidation = false;
} else if (etIraZip.getText().toString().equalsIgnoreCase("") || (etIraZip.getText().toString().trim().length() == 0)) {
System.out.println(" Please enter zipcode");
Toast.makeText(getApplication(), "Please Enter Zip Code", Toast.LENGTH_SHORT).show();
isValidation = false;
} else if (etIraCity.getText().toString().equalsIgnoreCase("") || (etIraCity.getText().toString().trim().length() == 0)) {
System.out.println(" Please enter city Name");
Toast.makeText(getApplication(), "Please Enter City Name", Toast.LENGTH_SHORT).show();
isValidation = false;
} else if (stateSelectd == false) {
System.out.println(" Please enter L Name");
Toast.makeText(getApplication(), "Please Select State", Toast.LENGTH_SHORT).show();
isValidation = false;
} else if (packageSelectd == false) {
System.out.println(" Please enter package size");
Toast.makeText(getApplication(), "Please Select Package Size", Toast.LENGTH_SHORT).show();
isValidation = false;
} else {
System.out.println(" Validation OK");
isValidation = true;
}
return isValidation;

}

public static boolean emailValidation(String emailstring) {
Pattern emailPattern = Pattern.compile("[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" + "\\@" + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + "(" + "\\."
+ "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + ")+");
Matcher emailMatcher = emailPattern.matcher(emailstring);
return emailMatcher.matches();
}

private class RARequestTask extends AsyncTask<Void, Void, String> {

@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
m_ProgressDialog = ProgressDialog.show(IRArequestForm.this, "Please wait..", "Retrieving data ...", true);
m_ProgressDialog.setContentView(R.layout.progress);
m_ProgressDialog.show();

}

@Override
protected String doInBackground(Void... params) {
// Simulates a background job.
String success = "";

try {

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://YOUR URL HTTP POST METHOD");
HttpResponse response;
List<NameValuePair> parame = new ArrayList<NameValuePair>();
parame.add(new BasicNameValuePair("MemberID", "0"));
parame.add(new BasicNameValuePair("FirstName", IraFirsNm));
parame.add(new BasicNameValuePair("LastName", IraLnm));
parame.add(new BasicNameValuePair("Email", IraEmail));
parame.add(new BasicNameValuePair("Phone", IraPhone));
parame.add(new BasicNameValuePair("zip", IraZip));
parame.add(new BasicNameValuePair("Address", IraAddrss));
parame.add(new BasicNameValuePair("City", IraCity));
parame.add(new BasicNameValuePair("State", state));
parame.add(new BasicNameValuePair("PackageSize", pkgSize));
parame.add(new BasicNameValuePair("ContactMethod", prefContact));
parame.add(new BasicNameValuePair("BestTimeForCall", TimeTocll));
parame.add(new BasicNameValuePair("ReceiveMarketUpdates", chkMktUpdt));

JSONObject holder = getJsonObjectFromMap(parame);

// passes the results to a string builder/entity
StringEntity se = new StringEntity(holder.toString());
httppost.setHeader("Accept", "application/json");
httppost.setHeader("Content-type", "application/json");

// sets the post request as the resulting string
httppost.setEntity(se);

// httppost.setEntity(ent);
response = httpclient.execute(httppost);

HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
Log.e("result-->", sb.toString());
JSONObject job = new JSONObject(sb.toString());
boolean succe = job.getBoolean("IsSuccess");
if (succe) {
success = "request recived";
} else {
success = "request failed";

}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
IsExcption = true;

// mListItems.addFirst("Added after refresh...");
return success;
}

@Override
protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);

}

@Override
protected void onPostExecute(String result) {

// setLoginDetail();
m_ProgressDialog.dismiss();
System.out.println("ProgressBar Dismiss");
super.onPostExecute(result);

if (IsExcption) {
System.out.println("GlobelVeriable isException=" + IsExcption);
Toast.makeText(IRArequestForm.this, "Internet connection issue", Toast.LENGTH_SHORT).show();
// ----------------------------------------------------------------------------------------------------
/*
* LayoutInflater inflater = (LayoutInflater)
* getSystemService(Context.LAYOUT_INFLATER_SERVICE); View
* popuplayoutReject =
* inflater.inflate(R.layout.popup_force_close_error,
* (ViewGroup) findViewById(R.id.popup_element)); final
* PopupWindow popUpReject = new PopupWindow(popuplayoutReject,
* WindowManager.LayoutParams.WRAP_CONTENT,
* WindowManager.LayoutParams.WRAP_CONTENT, false); ImageButton
* btnPopupForceCloseOK; TextView tvForceErrorMessage =
* (TextView)
* popuplayoutReject.findViewById(R.id.tvForceErrorMessage);
* tvForceErrorMessage
* .setText(getResources().getString(R.string.
* noInternetConnection)); btnPopupForceCloseOK = (ImageButton)
* popuplayoutReject.findViewById(R.id.btnPopupForceCloseOK);
* btnPopupForceCloseOK.setOnClickListener(new OnClickListener()
* {

* @Override public void onClick(View v) {
* popUpReject.dismiss(); IsExcption = false;
* finishFromChild(getParent()); } });
* popUpReject.showAtLocation(popuplayoutReject, Gravity.CENTER,
* 0, 0);
*/
// ----------------------------------------------------------------------------------------------------
} else {
if (IsSuccess) {
// tvpopuptext.setVisibility(View.GONE);
// tvpopuptexterror.setText(Message);
// pw.showAtLocation(popuplayout, Gravity.CENTER, 0, 0);
Toast.makeText(getApplicationContext(), Message, Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(getApplicationContext(), Message, Toast.LENGTH_SHORT).show();

}
}

}

private JSONObject getJsonObjectFromMap(List<NameValuePair> params) throws JSONException {
// TODO Auto-generated method stub

JSONObject holder = new JSONObject();

for (int i = 0; i < params.size(); i++) {

NameValuePair a = params.get(i);
holder.put(a.getName(), a.getValue());

}

Log.e("", holder.toString());
return holder;

}

}

}