Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java =================================================================== diff -u -r19682 -r19761 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 19682) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 19761) @@ -821,6 +821,7 @@ } br.close(); isr.close(); + logger.debug("result="+ sb); } catch (Exception e) { e.printStackTrace(); }finally{ @@ -838,9 +839,12 @@ * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @param charset + * 字符编码集 * @return URL 所代表远程资源的响应结果 */ - public static String sendGetRequest(String url, String param) { + public static String sendGetRequest(String url, String param , String charset) { + logger.debug("sendGetRequest:url="+ url +",param="+ param +",charset="+ charset); String result = ""; BufferedReader in = null; try { @@ -863,20 +867,21 @@ // 建立实际的连接 connection.connect(); // 获取所有响应头字段 - Map> map = connection.getHeaderFields(); + /*Map> map = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { logger.debug(key + "--->" + map.get(key)); - } + }*/ // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( - connection.getInputStream())); + connection.getInputStream() ,charset)); String line; while ((line = in.readLine()) != null) { result += line; } + logger.debug("result="+ result); } catch (Exception e) { - System.out.println("发送GET请求出现异常!" + e); + logger.error("发送GET请求出现异常!" + e); e.printStackTrace(); } // 使用finally块来关闭输入流 @@ -944,10 +949,10 @@ result += line; } - + logger.debug("result="+ result); } catch (Exception e) { - System.out.println("出现异常!"+e); + logger.error("出现异常!"+e); e.printStackTrace(); @@ -1033,10 +1038,10 @@ result += line; } - + logger.debug("result="+ result); } catch (Exception e) { - System.out.println("出现异常!"+e); + logger.error("出现异常!"+e); e.printStackTrace(); Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/sznsrmyy/FindPatientInfoByTreatmentNumDaoImpl.java =================================================================== diff -u -r19682 -r19761 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/sznsrmyy/FindPatientInfoByTreatmentNumDaoImpl.java (.../FindPatientInfoByTreatmentNumDaoImpl.java) (revision 19682) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/sznsrmyy/FindPatientInfoByTreatmentNumDaoImpl.java (.../FindPatientInfoByTreatmentNumDaoImpl.java) (revision 19761) @@ -1,6 +1,5 @@ package com.forgon.disinfectsystem.datasynchronization.dao.sznsrmyy; -import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.log4j.Logger; @@ -37,8 +36,21 @@ ";*/ String url = WebServiceClientHelper.buildAccessUrl(DatasyncConstant.MethodName_ClinicNumber, treatmentNum); //String url = "http://192.168.2.122:8088/buttjoint/testClinicNumberResult.xml"; - String xml = CssdUtils.sendGetRequest(url , null); - JSONObject patientInfo = JSONObject.fromObject(CssdUtils.getXmlContentByTagName(xml, DatasyncConstant.TAG_NAME_ClinicNumberResult)); + String xmlString = CssdUtils.sendGetRequest(url , null , Constants.CHARSET_UTF8); + + //由于返回的xml数据格式可能有问题导致解析有点问题,现换成为文本方案截取 +// xmlString = CssdUtils.getXmlContentByTagName(xmlString, DatasyncConstant.TAG_NAME_ClinicNumberResult); + + int startIndex = xmlString.indexOf("<" + DatasyncConstant.TAG_NAME_ClinicNumberResult + ">"); + if(startIndex == -1){ + return null; + } + int endIndex = xmlString.lastIndexOf(""); + if(endIndex == -1 || endIndex < startIndex){ + return null; + } + xmlString = xmlString.substring(startIndex + DatasyncConstant.TAG_NAME_ClinicNumberResult.length() + 2, endIndex); + JSONObject patientInfo = JSONObject.fromObject(xmlString); if(patientInfo != null){ Object tNumber = patientInfo.opt("clinicNumber");// Object patientName = patientInfo.opt("patientName");// Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/sznsrmyy/FindPatientInfoByHospitalNumDaoImpl.java =================================================================== diff -u -r19682 -r19761 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/sznsrmyy/FindPatientInfoByHospitalNumDaoImpl.java (.../FindPatientInfoByHospitalNumDaoImpl.java) (revision 19682) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/sznsrmyy/FindPatientInfoByHospitalNumDaoImpl.java (.../FindPatientInfoByHospitalNumDaoImpl.java) (revision 19761) @@ -4,6 +4,7 @@ import org.apache.log4j.Logger; +import com.forgon.tools.Constants; import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.datasynchronization.dao.FindPatientInfoByHospitalNumDao; import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO; @@ -33,10 +34,21 @@ {"bedNumber":"","clinicNumber":"0000481250","doctorName":"张建军","operation":"","operationTime":"","patientAge":"7","patientArea":"","patientIDCard":"440308200909122241","patientName":"杜欣芸","patientSex":"女","remark":"","roomNumber":"","serialNumber":"12158257"} ";*/ String url = WebServiceClientHelper.buildAccessUrl(DatasyncConstant.MethodName_HospitalNumber, hospitalNum); - //String url = "http://192.168.2.122:8088/buttjoint/testHospitalNumberResult.xml"; - String xml = CssdUtils.sendGetRequest(url , null); +// String url = "http://192.168.2.122:8088/buttjoint/testHospitalNumberResult.xml"; + String xmlString = CssdUtils.sendGetRequest(url , null , Constants.CHARSET_UTF8); - JSONObject patientInfo = JSONObject.fromObject(CssdUtils.getXmlContentByTagName(xml, DatasyncConstant.TAG_NAME_HospitalNumberResult)); + //由于返回的xml数据格式可能有问题导致解析有点问题,现换成为文本方案截取 +// xmlString = CssdUtils.getXmlContentByTagName(xmlString, DatasyncConstant.TAG_NAME_HospitalNumberResult); + int startIndex = xmlString.indexOf("<" + DatasyncConstant.TAG_NAME_HospitalNumberResult + ">"); + if(startIndex == -1){ + return null; + } + int endIndex = xmlString.lastIndexOf(""); + if(endIndex == -1 || endIndex < startIndex){ + return null; + } + xmlString = xmlString.substring(startIndex + DatasyncConstant.TAG_NAME_HospitalNumberResult.length() + 2, endIndex); + JSONObject patientInfo = JSONObject.fromObject(xmlString); if(patientInfo != null){ Object tNumber = patientInfo.opt("hospitalNumber"); Object patientName = patientInfo.opt("patientName");