HttpPost 和Httpget 的简单应用

对于HttpPost 方法的简单集成 加载服务器端的JsonArray 到客户端,变成List<HashMap<String,String>>

public static List<HashMap<String, String>> loadString(String path,HashMap<String, String> hash) throws Exception{
// HttpPost 访问网络 path 访问路径 hash传递的参数
List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>(); // 传递的参数的封装
List<HashMap<String, String>> listvalue = new ArrayList<HashMap<String,String>>();//返回的数据
HttpClient client = new DefaultHttpClient();//HttpClient 客户端用于执行HttpPost 或者 HttpGet
HttpPost post = new HttpPost(path); // Post请求方法,把路径带上
if(hash!=null){
Set<String> set = hash.keySet(); //得到hashmap 的key值,
Iterator<String> it = set.iterator(); //使用迭代器把key值输出
while(it.hasNext()){
String name  = it.next(); //得到key值
String value = hash.get(name);//利用key值得到value
BasicNameValuePair pair = new BasicNameValuePair(name,value); // key-value 的封装
list.add(pair);
}
HttpEntity entity = new UrlEncodedFormEntity(list); 
post.setEntity(entity);
}

HttpResponse response = client.execute(post); //客户端执行封装
if(response.getStatusLine().getStatusCode()==200){
//响应成功 返回 200 
HttpEntity entity1 = response.getEntity(); //得到响应的实体
String jsonarray = EntityUtils.toString(entity1);//
/**
* 利用EntityString把实体转化成String
或者可以把 用输入流的
InputStream in = entity1.getContent();
BufferedReader read = new BufferedReader(new InputStreamReader(in));
StringBuffer sb =new StringBuffer();
String str ;
while((str=read.readLine())!=null){
sb.append(str);
}

*/
JSONArray array = new JSONArray(jsonarray);// 把得到的数据转化成Jsonarray
for(int i=0;i<array.length();i++){// 利用for 循环把输出JsonObject
JSONObject object = array.getJSONObject(i);
Iterator<String> its = object.keys(); //获取JsonObject 的key值,通过key值获取value
HashMap<String, String> hash2 =  new HashMap<String, String>(); //每一个JsonObject ,新建一个Hashmap对象
while(its.hasNext()){
String key = its.next();  
String values = object.getString(key);
Log.i("--------------", ""+key+""+values);
hash2.put(key, values);
}
listvalue.add(hash2);// 把hashmap 加入List集合中
}

}
 return listvalue;

}

public static List<HashMap<String, String>> loadString(String path) throws Exception{

//HttpGet 方法访问网络,不能携带参数,除了不鞥携带参数其他的和HttpPost 方法一样的!!!

HttpClient client  = new DefaultHttpClient();
HttpGet get = new HttpGet(path);
HashMap<String, String> hash ;
List<HashMap<String, String>> list = new ArrayList<HashMap<String,String>>();
HttpResponse  response = client.execute(get);
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity = response.getEntity();
String jsonarray = EntityUtils.toString(entity);
JSONArray array = new JSONArray(jsonarray);
for(int i=0;i<array.length();i++){
JSONObject object = array.getJSONObject(i);
 Iterator<String> it = object.keys();
 hash = new HashMap<String, String>();
 while(it.hasNext()){
 String name  = it.next();
 String value = object.getString(name);
hash.put(name, value);  
 }
 list.add(hash);
}
}


 
 
 
   return list;
 
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值