Android 带有JSON字符串的HTTP post

Android 带有JSON字符串的HTTP post,android,json,web-services,http-post,send,Android,Json,Web Services,Http Post,Send,我有一个问题,我不知道如何解决它。 接下来是我的问题:如何通过Httpost发送:data={“value”:0,“list”:[]} 我试图以字符串形式发送此数据={“value”:0,“list”:[]},但我只获取,您需要从服务器获取POST值 这是我的代码: HttpParams params = new BasicHttpParams(); //params.setParameter("data", auth); HttpClient h

我有一个问题,我不知道如何解决它。 接下来是我的问题:如何通过Httpost发送:data={“value”:0,“list”:[]} 我试图以字符串形式发送此数据={“value”:0,“list”:[]},但我只获取,您需要从服务器获取POST值

这是我的代码:

        HttpParams params = new BasicHttpParams();
        //params.setParameter("data", auth);
        HttpClient httpclient = new DefaultHttpClient(params);

        JSONObject auth = new JSONObject(); 
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        List<NameValuePair> nameValueP = new ArrayList<NameValuePair>(2);
        ArrayList<String> aList = new ArrayList<String>();
        nameValuePairs.add(new BasicNameValuePair("value", "0"));
        nameValuePairs.add(new BasicNameValuePair("list", aList.toString()));
        nameValueP.add(new BasicNameValuePair("data", nameValuePairs.get(0).toString()+nameValuePairs.get(1).toString()));

        HttpPost httpPost = new HttpPost(url);

        httpPost.setHeader("Content-type", "application/json");


        httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        entity.setContentEncoding(HTTP.UTF_8);

        HttpResponse response = httpclient.execute(httpPost);
        HttpEntity entities = response.getEntity();               

        String outPut = EntityUtils.toString(entities);
HttpParams params=new BasicHttpParams();
//参数设置参数(“数据”,认证);
HttpClient HttpClient=新的默认HttpClient(参数);
JSONObject auth=新的JSONObject();
List nameValuePairs=新的ArrayList(2);
列表名称ValueP=新的ArrayList(2);
ArrayList aList=新的ArrayList();
添加(新的BasicNameValuePair(“值”,“0”));
添加(新的BasicNameValuePair(“list”,aList.toString());
添加(新的BasicNameValuePair(“数据”,nameValuePairs.get(0).toString()+nameValuePairs.get(1).toString());
HttpPost HttpPost=新的HttpPost(url);
setHeader(“内容类型”、“应用程序/json”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
setContentEncoding(HTTP.UTF_8);
HttpResponse response=httpclient.execute(httpPost);
HttpEntity entities=response.getEntity();
字符串输出=EntityUtils.toString(实体);
输出返回错误,此错误表示需要从服务器发送POST元素


此代码应返回一个列表,此列表是一个包含不同元素的数组。

请尝试以下操作:

            JSONObject jsonParams = new JSONObject();
    try {

        JSONObject jsComm = new JSONObject();
        JSONObject jsLoc = new JSONObject();
        jsLoc.put("lat", (float) lat);
        jsLoc.put("long", (float) lng);
        jsComm.put("location", jsLoc);
        jsComm.put("text", txt);
        jsonParams.put("comment", jsComm);
    } catch (JSONException e2) {
        Log.d("exception", "Exception while parsing json array :" + e2.toString());
        e2.printStackTrace();
    }
然后使用:

AbstractHttpEntity entity = null;
entity = new ByteArrayEntity(jsonParams.toString().getBytes("UTF8"));
entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
httpPost.setEntity(entity);

因为这个问题正在我的android应用程序中出现。