/*** 获取当前房间参数信息
*
*@paramhouseid 房间ID
*@paramhashmap 成功失败标志
*@return返回House参数信息
*@throwsUnsupportedEncodingException
*@throwsJSONException*/@SuppressWarnings("finally")public static House GetHousePars(inthouseid,
HashMaphashmap)throwsUnsupportedEncodingException, JSONException {
Log.i(tag, STRUrl);int flag = 0;
House ur= null;
String tag= "httppost";
Log.i(tag,"获取房间信息");//设置服务地址
String Url = STRUrl + "InteWebService.asmx/GetHouse";
HttpPost request= new HttpPost(Url);//定义一个HTTP请求
request.addHeader("Content-Type", "application/json; charset=utf-8");//设置返回的内容为json格式//Post参数传递 JSON格式
JSONObject jsonParams = newJSONObject();
jsonParams.put("houseid", houseid);//传参,如果想传递两个参数则继续添加第二个参数jsonParams.put("param2Name","param2Value")
Log.i(tag, "houseid=" +houseid);
HttpEntity bodyEntity= new StringEntity(jsonParams.toString(), "utf8");//参数必须也得是JSON数据格式的字符串才能传递到服务器端,否则会出现"{'Message':'strName是无效的JSON基元'}"的错误
request.setEntity(bodyEntity);
HttpClient httpClient= newDefaultHttpClient();
String res= "";try{
Log.i(tag,"开始执行请求GetHousePars");
Log.i(tag, Url);
HttpResponse response=httpClient.execute(request);int state =response.getStatusLine().getStatusCode();
Log.i(tag,"返回状态" +state);if (state == 200) {//200表示连接成功 404 连接失败
Log.i(tag, "状态200连接成功");
HttpEntity entity= response.getEntity();//获取返回结果
res =EntityUtils.toString(entity);
Log.i(tag, res);
GsonBuilder gsonb= newGsonBuilder();//Json中的日期表达方式没有办法直接转换成我们的Date类型, 因此需要单独注册一个Date的反序列化类.
DateDeserializer ds = newDateDeserializer();//给GsonBuilder方法单独指定Date类型的反序列化方法
gsonb.registerTypeAdapter(java.util.Date.class, ds);
Gson gson=gsonb.create();
JSONObject resultJSON= newJSONObject(res);
String data= resultJSON.get("d").toString();
Log.i(tag, data);if ("null" !=data) {
Log.i(tag,"返回不为null开始转换");//登录成功 返回用户信息 注意时间格式的提取
ur = gson.fromJson(data, House.class);if (ur != null) {
flag= 1;
hashmap.put("flag", flag);returnur;
}
}else{//没有返回用户信息
Log.i(tag, "返回为null");
flag= 0;//房间信息不存在
hashmap.put("flag", flag);}
}else{
flag= 2;//网络连接异常
hashmap.put("flag", flag);
Log.i("httppost", "连接失败"
+response.getStatusLine().getStatusCode());
}
}catch(Exception e) {
flag= -1;//程序异常
hashmap.put("flag", flag);
Log.i("httppost", "获取信息异常" +e.getMessage());
}finally{
hashmap.put("flag", flag);
Log.i("httppost", "关闭try");returnur;
}
}