我想知道android中List<NameValuePair>
或ArrayList<NameValuePair>
有什么用?特别是当我们使用AsyncTask<...>
答案 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
是一个接口,ArrayList
是List
接口的实现。
List
:List
是集合框架中的接口。像ArrayList
,LinkedList
这样的几个类实现了这个接口。 List
是一个有序集合,因此对象的位置很重要。
ArrayList
:ArrayList
是一个可以在运行时增长的类。您可以将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))