本项目中引用工其他url(如百度等)

来源:互联网 发布:2017广电网络最新消息 编辑:程序博客网 时间:2024/04/28 11:25

昨天项目考试,遇到问题,给一个外部url,可返回一个json类型字符串,解析json类型,并取出需要的值插入数据库:方法如下:

@RequestMapping(value = "getValue")@ResponseBodyprivate String getValue(@RequestParam("address") String address,@RequestParam("flag") int flag,ModelMap modelMap) {String strUrl = "http://192.168.4.95:8080/testprotocol/";Date now = new Date();if(flag==1) { //电压strUrl +=  "readCurrent.do?address="+address;} if(flag==2) { //电流strUrl +=  "readVoltage.do?address="+address;}if(flag==3){ //电能//取当天日期int day = now.getDate();strUrl +=  "readElectrical.do?address="+address+"&day="+day;}StringBuffer str = new StringBuffer();try{URL url = new URL(strUrl);//远程urlURLConnection conn = url.openConnection();    BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));    String line = null;    while ((line = reader.readLine()) != null)    str.append(line + " ");    reader.close();}catch(MalformedURLException e) {e.printStackTrace(); }catch(IOException e){    e.printStackTrace(); }String jsonStr = str.toString();//返回值JSONObject jsonobject = JSONObject.fromObject(jsonStr);float value = 0.0f;if(flag==3) {value = Integer.parseInt((String) jsonobject.get("data"))/1.0f;} else { value = Float.parseFloat((String) jsonobject.get("data"));}if(flag==1) {voltageService.addVoltage(value,address);}else if(flag==2) {electricService.addElectric(value,address);} else if(flag==3){powerService.addPower(value,address,now);} else {return "error";}String status = (String) jsonobject.get("status");if(status.equalsIgnoreCase("success")) {return "success";} else {return "error";}}


0 0