2017-03-01 18 views
0

Androidからサーバーにデータを送信しようとしています。いくつかの文字列値とJSONarrayいわゆる「倍数」私はメソッドを呼び出す方法StringEntityを使用してAndroidでサーバーにJSONarrayを送信するにはどうすればよいですか?

String id = new AddContactRequest().execute(token, etNameS, etLastNameS, etTitleS, etCompanyS, etUrlS, etDescriptionS, txtStatusS, "1", etAddressS, multiplesUpdatedArray.toString()).get(); 

これは私のメソッドは応答があるデータ

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; 

     } 

    } 

を送るようにされてあります。エラーコード500、内部サーバーエラー。私は何が起きているのか、何が間違っているのか分かりません。

私はBasicNameValuePairを使用すると、すべてのデータが助けてください、私の「倍数」JSONArray

除いて送信されます。前もって感謝します!

+0

1に送信文字列&にJSONArrayを変換し、それが文字列でない配列です。 2.サーバーからの応答がありますが、サーバーが処理できないため、サーバー側で(可能な場合)見てください。エラー500はすべての可能性があります。 – Fusselchen

答えて

2

サーバー

データも送信され
StringEntity entity = new StringEntity(jsonArray.toString()); 
関連する問題