您的位置:首页 > 编程语言 > Java开发

java 使用URLConnection 请求json格式接口,使用实体类接收

2016-11-19 13:51 260 查看
parameter需要传递参数的参数对象,class用于接收json的对象,url接口的url地址要替换参数值${}
publicstaticStringLOGOUTT=apiUrl+"/app/WebService/JSON/display.php/Logout?website=${website}&username=${username}&key=${key}";
publicclassCoreExecuteCc{privatestaticfinalLoggerlogger=Logger.getLogger(CoreExecuteCc.class);finalstaticConcurrentMap<Class,JAXBContext>contextCache=newConcurrentHashMap<Class,JAXBContext>();finalstaticConcurrentMap<Class,Field[]>fieldsCache=newConcurrentHashMap<Class,Field[]>();publicstatic<T>TsendGet(Objectparameter,Class<T>clazz,Stringurl,inttype){Stringresult="";BufferedReaderin=null;InputStreamReaderinputStreamReader=null;InputStreaminputStream=null;try{Field[]fields=fieldsCache.get(parameter.getClass());if(fields==null){fields=parameter.getClass().getFields();fieldsCache.put(clazz,fields);}for(inti=0;i<fields.length;i++){Fieldfiled=fields[i];StringfiledName=filed.getName();Objectvalue=null;try{value=filed.get(parameter);}catch(IllegalAccessExceptione){e.printStackTrace();}if(value!=null){u
cfb9
rl=url.replace("${"+filedName+"}",value.toString());}}url=url.replaceAll("&[^\\&]*=\\$\\{.*?\\}","");Patternpattern=Pattern.compile("\\?.*?\\$\\{.*?\\}");Matchermatcher=pattern.matcher(url);if(matcher.find()){StringmatchUrl=matcher.group(0);url=url.replace(matchUrl.substring(1),"");}URLrealUrl=newURL(url.trim());URLConnectionconnection=realUrl.openConnection();connection.setConnectTimeout(20000);connection.setReadTimeout(20000);connection.setRequestProperty("accept","*/*");connection.setRequestProperty("connection","Keep-Alive");connection.setRequestProperty("user-agent","Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");connection.connect();System.out.println("cc接口请求URL---"+url);Map<String,List<String>>map=connection.getHeaderFields();for(Stringkey:map.keySet()){System.out.println(key+"--->"+map.get(key));}inputStream=connection.getInputStream();inputStreamReader=newInputStreamReader(inputStream);in=newBufferedReader(inputStreamReader);StringinputLine=null;while((inputLine=in.readLine())!=null){in.close();Gsongson=newGson();Map<String,Object>mapp=gson.fromJson(inputLine,Map.class);booleanreturnFlag=Boolean.valueOf(mapp.get("result")+"");System.out.println("cc接口调用结果:"+returnFlag);if(returnFlag){returngson.fromJson(inputLine,clazz);}else{mapp.put("result","false");if(type==1){mapp.remove("data");mapp.put("baseData",baseData.getData());}returngson.fromJson(newGson().toJson(mapp),clazz);}}}catch(Exceptione){System.out.println("cc请求URL异常"+e);e.printStackTrace();}finally{try{if(in!=null){in.close();}if(inputStreamReader!=null){inputStreamReader.close();}if(inputStream!=null){inputStream.close();}}catch(Exceptione2){e2.printStackTrace();}}returnnull;}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: