httpclient发送Json请求,结果返回Json.

Java代码   收藏代码
  1. public static JSONObject post(String url,JSONObject json){  
  2.         HttpClient client = new DefaultHttpClient();  
  3.         HttpPost post = new HttpPost(url);  
  4.         JSONObject response = null;  
  5.         try {  
  6.             StringEntity s = new StringEntity(json.toString());  
  7.             s.setContentEncoding("UTF-8");  
  8.             s.setContentType("application/json");  
  9.             post.setEntity(s);  
  10.               
  11.             HttpResponse res = client.execute(post);  
  12.             if(res.getStatusLine().getStatusCode() == HttpStatus.OK.value()){  
  13.                 HttpEntity entity = res.getEntity();  
  14.                 String charset = EntityUtils.getContentCharSet(entity);  
  15.                 response = new JSONObject(new JSONTokener(new InputStreamReader(entity.getContent(),charset)));  
  16.             }  
  17.         } catch (Exception e) {  
  18.             throw new RuntimeException(e);  
  19.         }  
  20.         return response;  
  21.     }  

用到的jar包:httpclient-4.1.1.jar以及辅助类 
json-lib-2.4-jdk15.jar



protected JSONArray doInBackground(String... params) {
			WebUtil webUtil = new WebUtil();
			HttpResponse response= webUtil.getResultByPost(params[0], mParams);
			//HttpResponse response=webUtil.getResultByGet(params[0]);
			if(response!=null){
				if(response.getStatusLine().getStatusCode()==200){
					HttpEntity httpEntity = response.getEntity();
					try {
						String resultToString = EntityUtils.toString(response.getEntity());
						if(resultToString!=null){
							jsonArray= new JSONArray(resultToString); 
							/*//创建消息
							Message message = Message.obtain();
							message.obj=jsonArray;
							message.what=IS_FINISH;//消息标识符
							handler.sendMessage(message);//发送消息给handler*/
							
						}
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
				}
			}
			return jsonArray;
		}
		
		@Override
		protected void onPostExecute(JSONArray result) {
			// TODO Auto-generated method stub
			if(result!=null){
				super.onPostExecute(result);
				dialog.dismiss();
				historyAdapter = new HistoryAdapter(result,context);
				pullToRefreshListView.setAdapter(historyAdapter);
				pullToRefreshListView.setMode(Mode.BOTH);//上下都可拉动
				//设置刷新监听事件
				pullToRefreshListView.setOnRefreshListener( new OnRefreshListener2<ListView>(){
					@Override
					public void onPullDownToRefresh(
							PullToRefreshBase<ListView> refreshView) {
						MyTask taskDown = new MyTask();
						taskDown.execute(path);
						historyAdapter.notifyDataSetChanged();
					}
					
					@Override
					public void onPullUpToRefresh(
							PullToRefreshBase<ListView> refreshView) {
						// TODO Auto-generated method stub
						MyTask taskUp = new MyTask();
						taskUp.execute(path);
						historyAdapter.notifyDataSetChanged();
						
					}});
				pullToRefreshListView.onRefreshComplete(); 
			}
			}
		
	}
public View getView(int position, View convertView, ViewGroup parent) {
		try {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
			String obj= jsonArray.get(position).toString();
			Gson gson = new Gson();
			Skin skin = new Skin();
			skin= gson.fromJson(obj, Skin.class);
			
			
			
			TextView tv = new TextView(context);
			tv.setTextSize(20);
			tv.setTextColor(Color.BLACK);
			tv.setText("用户ID:"+skin.getUserCode());
			tv.setId(R.id.tvUserCode);
			
			TextView tvUserName = new TextView(context);
			tvUserName.setTextSize(20);
			tvUserName.setTextColor(Color.BLACK);
			tvUserName.setText("用户名:"+skin.getUserName());
			tvUserName.setId(R.id.tvUserName);
		
			
			TextView tvTestDate = new TextView(context);
			tvTestDate.setTextSize(20);
			tvTestDate.setTextColor(Color.BLACK);
			Date date = new Date(skin.getTestDate());
			tvTestDate.setText("检测日期:"+sdf.format(date));
			tvTestDate.setId(R.id.tvTestDate);
			
			TextView tvHumidity = new TextView(context);
			tvHumidity.setTextSize(20);
			tvHumidity.setTextColor(Color.BLACK);
			tvHumidity.setText("水分值:"+skin.getHumidity());
			tvHumidity.setId(R.id.tvHumidity);
			
			TextView tvPercent = new TextView(context);
			tvPercent.setTextSize(20);
			tvPercent.setTextColor(Color.BLACK);
			tvPercent.setText("水分比:"+skin.getPercent()+"%");
			tvPercent.setId(R.id.tvPercent);
			
			
			TableLayout tableLayout = new TableLayout(context);
			TableRow tableRow1 = new TableRow(context);
			tableRow1.addView(tv);
			tableRow1.addView(tvUserName);
			TableRow tableRow2 = new TableRow(context);
			tableRow2.addView(tvTestDate);
			tableRow2.addView(tvHumidity);
			TableRow tableRow3 = new TableRow(context);
			tableRow3.addView(tvPercent);
			tableLayout.addView(tableRow1);
			tableLayout.addView(tableRow2);
			tableLayout.addView(tableRow3);
			
			LinearLayout layout= new LinearLayout(context);
			layout.addView(tableLayout);
			layout.setOrientation(LinearLayout.VERTICAL);
			return layout;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值