List <namevaluepair>或ArrayList <namevaluepair> </namevaluepair> </namevaluepair>的用途是什么?

时间:2013-07-12 04:44:35

标签: android android-asynctask

我想知道android中List<NameValuePair>ArrayList<NameValuePair>有什么用?特别是当我们使用AsyncTask<...>

使用网络服务时

5 个答案:

答案 0 :(得分:54)

NameValuePair是一个特殊的<Key, Value>对,用于表示http请求中的参数,即www.example.com?key=value

NameValuePair是一个接口,在apache http客户端中定义,它在java中广泛用于处理http操作。 List<NameValuePair>只是<key, value>对的列表,将在http post请求中用作参数。

HttpPost request = new HttpPost();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("key", "value"));
request.setEntity(new UrlEncodedFormEntity(params));

httpClient.execute(request);

答案 1 :(得分:12)

一些有用的东西。

List是一个接口,ArrayListList接口的实现。

ListList是集合框架中的接口。像ArrayListLinkedList这样的几个类实现了这个接口。 List是一个有序集合,因此对象的位置很重要。

ArrayListArrayList是一个可以在运行时增长的类。您可以将java对象存储在ArrayList中,也可以在运行时添加新对象。

当您不必经常添加或删除对象时,您将使用ArrayList。因为当您删除对象时,所有其他对象需要重新定位在ArrayList内,如果您遇到这种情况,请尝试使用LinkedList

您可以从here了解更多信息。

答案 2 :(得分:9)

List<NameValuePair>ArrayList<NameValuePair>用于将值从Android应用程序发送到服务器。

@Override
    protected Header[] doInBackground(String... params) {
        try {
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(params[1]);

            ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
            nameValuePair.add(new BasicNameValuePair("ssn", params[0]));
            httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair,
                    "UTF-8"));
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            response = EntityUtils.toString(httpEntity);
            allHeaders = httpResponse.getAllHeaders();

        } catch (Exception ex) {

            ex.printStackTrace();

        }
        return allHeaders;
    }

在上面的代码中,我使用ssn将属性ArrayList<NameValuePair>传递给服务器。

答案 3 :(得分:0)

使用此代码从Android应用程序上传数据到服务器端..

  // image file *********************************
 // here send all the sqlite database datas to local sever via HttpPost("url"); 

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

nameValuePairs.add(new BasicNameValuePair("job_id","001"));
nameValuePairs.add(new BasicNameValuePair("picture_path",picturejson.toString()));
        nameValuePairs.add(new BasicNameValuePair("date_time",datetime_str));
        nameValuePairs.add(new BasicNameValuePair("location",gpslocation_str));
        try{

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://Sample/iphone/getinput");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        httpclient.execute(httppost);
        HttpResponse response = httpclient.execute(httppost);
        //HttpEntity entity = response.getEntity();
        //is = entity.getContent();
        //HttpResponse response = httpClient.execute(postRequest);
         BufferedReader reader = new BufferedReader(new InputStreamReader(
             response.getEntity().getContent(), "UTF-8"));
                        String sResponse;
                        StringBuilder s = new StringBuilder();

                        while ((sResponse = reader.readLine()) != null) {
                            s = s.append(sResponse);
                        }
                    System.out.println("Response: ");
                    Log.v("hari", "Response : ");
        }catch(Exception e){
        //Log.e("log_tag", "Error in http connection "+e.toString());

        }

答案 4 :(得分:0)

df['final_score'] = df['count'].mul(.4).add(df.score.mul(.6))