I am completely new to Android.
I have a list of data receiving in my 'onActivityResult'. I converted them as json array in the format [{"name":"net","price":"20"},{"name":"samsung","price":"11220"}]
now I want to attach this to a url and want to send like this format
http://xyz/abc/purchasedetails=[{“name”:”Samsung”,”price”=“45”},{“name”:”Nokia”,”price”=“25”},{“name”:”Lenovo”,”price”=“115”}]
What I have done so far:
public class SendDataToServer extends Fragment {
int publishStatusCode = 0;
public interface SendProductDetailsToServerCallbacks {
public void OnPostExcecuteSendMilestoneDetailsToServerAsync(int _publishStatus,
String _responseString);
}
SendProductDetailsToServerAsync mSendProductDetailsToServerAsync;
SendProductDetailsToServerCallbacks mSendProductDetailsToServerCallbacks;
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
try {
mSendProductDetailsToServerCallbacks =
(SendProductDetailsToServerCallbacks) activity;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
private class SendProductDetailsToServerAsync extends AsyncTask<Void, Void, String> {
String DataToSend = "";
public SendProductDetailsToServerAsync(String _DataToSend) {
DataToSend = _DataToSend;
}
@Override
protected String doInBackground(Void... params) {
boolean isDoRequestAgain = false;
String result = "";
do {
isDoRequestAgain = false;
/* List<NameValuePair> nameValuePairs = new
ArrayList<NameValuePair>();*/
JSONObject json = new JSONObject();
try {
String totalUrl = "http://androidxyz.com/android/vendor/purchasedetails.jsp?purchasedetails=" + DataToSend;
HttpPost post = new HttpPost(totalUrl);
HttpClient client = new DefaultHttpClient();
HttpResponse response;
/*nameValuePairs.add(new BasicNameValuePair(
"milestonedata", json.toString()));*/
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = client.execute(post);
publishStatusCode = response.getStatusLine().getStatusCode();
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
StringBuffer buffer = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = instream.read(b)) != -1; ) {
buffer.append(new String(b, 0, n));
}
result = buffer.toString();
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} while (isDoRequestAgain);
return result;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
Log.v("publishStatusCode", publishStatusCode + "");
Log.v("result", result + "");
mSendProductDetailsToServerCallbacks.OnPostExcecuteSendMilestoneDetailsToServerAsync(publishStatusCode, result);
}
}
public void startSendMilestoneDetailsToServerAsync(String _dataToSend) {
mSendProductDetailsToServerAsync = new SendProductDetailsToServerAsync(_dataToSend);
mSendProductDetailsToServerAsync.execute();
}
}
What change I have to do here to make my code work?
DataToSend is [{"name":"net","price":"20"},{"name":"samsung","price":"11220"}].