Ich versuche, Daten von Android an den Server zu senden. Es gibt einige String-Werte und ein JSONarray namens "multiples"Wie senden Sie JSONarray an Server in Android mit StringEntity?
Wie ich die Methode nennen
String id = new AddContactRequest().execute(token, etNameS, etLastNameS, etTitleS, etCompanyS, etUrlS, etDescriptionS, txtStatusS, "1", etAddressS, multiplesUpdatedArray.toString()).get();
Dies ist meine die Methode
public class AddContact extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... params) {
String line;
line = postData(params[0], params[1], params[2], params[3], params[4], params[5], params[6], params[7], params[8], params[9], params[10]);
return line;
}
protected void onPostExecute(String result){
super.onPostExecute(result);
}
protected void onProgressUpdate(Integer... progress){
pb.setProgress(progress[0]);
}
public String postData(String token, String name, String lastname, String title, String company, String url, String description, String status, String campaign, String address, String multiples) {
//public String postData(String token, String name, String lastname, String title, String company, String phone, String email, String url, String description, String status, String campaign, String address) {
String line2 = null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://fake.com/api/insert");
try {
JSONObject params = new JSONObject();
params.put("token", token);
params.put("name", name);
params.put("lastname", lastname);
params.put("title", title);
params.put("company", company);
params.put("url", url);
params.put("description", description);
params.put("address", address);
params.put("status", status);
params.put("campaign", campaign);
params.put("multiples", multiples);
httppost.setEntity(new StringEntity(params.toString(), HTTP.UTF_8));
httppost.setHeader("Accept", "application/json");
httppost.setHeader("Content-type", "application/json");
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
HttpEntity httpEntity = response.getEntity();
line2 = EntityUtils.toString(httpEntity);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return line2;
}
}
Die Antwortdaten zu senden ist ein Fehlercode 500, interner Serverfehler. Ich weiß nicht, was glücklich ist oder was ich falsch mache.
Wenn ich BasicNameValuePair
alle Daten verwenden, ist außer meiner "multiples" JSONArray
Bitte helfen geschickt. Danke im Voraus!
1. Die Daten werden auch gesendet, aber es ist eine Zeichenfolge, kein Array. 2. Sie haben eine Antwort vom Server bekommen, aber der Server kann nicht damit umgehen, also schauen Sie sich die Server Seite an (wenn möglich), Fehler 500 kann alles sein. – Fusselchen