您的位置:首页 > 理论基础 > 计算机网络

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

2014-11-07 17:44 429 查看


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

博客分类:

java

javajsonhttpclient

Java代码


public static JSONObject post(String url,JSONObject json){

HttpClient client = new DefaultHttpClient();

HttpPost post = new HttpPost(url);

JSONObject response = null;

try {

StringEntity s = new StringEntity(json.toString());

s.setContentEncoding("UTF-8");

s.setContentType("application/json");

post.setEntity(s);

HttpResponse res = client.execute(post);

if(res.getStatusLine().getStatusCode() == HttpStatus.OK.value()){

HttpEntity entity = res.getEntity();

String charset = EntityUtils.getContentCharSet(entity);

response = new JSONObject(new JSONTokener(new InputStreamReader(entity.getContent(),charset)));

}

} catch (Exception e) {

throw new RuntimeException(e);

}

return response;

}

用到的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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: