Подтвердить что ты не робот

Что такое использование List <NameValuePair> или ArrayList <NameValuePair>

Я хочу знать о том, что использует List<NameValuePair> или ArrayList<NameValuePair> в android? Особенно, когда мы используем веб-службы, используя AsyncTask<...>

4b9b3361

Ответ 1

NameValuePair - это специальная пара <Key, Value>, которая используется для представления параметров в HTTP-запросе, т.е. www.example.com?key=value.

NameValuePair является интерфейсом и определяется в http-клиенте apache, который широко используется в java для обработки операций HTTP. A 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);

Ответ 2

Некоторые полезные вещи для вас.

List - это интерфейс, а ArrayList - реализация интерфейса List.

List: List - это интерфейс в рамках коллекции. несколько классов, таких как ArrayList, LinkedList реализуют этот интерфейс. List - упорядоченный набор, поэтому положение объекта имеет значение.

ArrayList: ArrayList - это класс, который может расти во время выполнения. вы можете хранить java-объекты в ArrayList, а также добавлять новые объекты во время выполнения.

Вы будете использовать ArrayList, если вам не нужно добавлять или удалять объекты из него. Поскольку, когда вы удаляете объект, все остальные объекты должны быть помещены внутри ArrayList, если у вас такая ситуация, попробуйте вместо этого использовать LinkedList.

Вы можете найти более подробную информацию из здесь.

Ответ 3

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>.

Ответ 4

Используется этот код для загрузки данных из приложения 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());

        }

Ответ 5

protected String  doInBackground(String... params)
        {
            try
            {
                List<NameValuePair> param = new ArrayList<NameValuePair>();
            param.add(new BasicNameValuePair("username", edName));
            param.add(new BasicNameValuePair("email", edEmail));
            param.add(new BasicNameValuePair("password",  edPassword));
            param.add(new BasicNameValuePair("mobile", edMobile));


            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(params[0]);
            httpPost.setEntity(new UrlEncodedFormEntity(param));

            HttpResponse httpResponse = httpClient.execute(httpPost);

            HttpEntity httpEntity = httpResponse.getEntity();
            InputStream is = httpEntity.getContent();

            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;

            while ((line = reader.readLine()) != null)
            {sb.append(line + "\n");
            }

            String  json = sb.toString();
            JSONObject jObj = new JSONObject(json);
            msg= jObj.getString("message");
        }
        catch(Exception e)
        {

            Log.e("error", "Network problem");
        }
        return msg;

    }
}