java智能问答图灵机器人AI接口(聚合数据)
java类JuHeChatUtil
importjava.io.BufferedReader; importjava.io.DataOutputStream; importjava.io.IOException; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.io.UnsupportedEncodingException; importjava.net.HttpURLConnection; importjava.net.URL; importjava.net.URLEncoder; importjava.util.HashMap; importjava.util.Map; importorg.apache.log4j.Logger; importnet.sf.json.JSONObject; publicclassJuHeChatUtil{ staticLoggerlogger=Logger.getLogger(JuHeChatUtil.class); publicstaticfinalStringDEF_CHATSET="UTF-8"; publicstaticfinalintDEF_CONN_TIMEOUT=30000; publicstaticfinalintDEF_READ_TIMEOUT=30000; publicstaticStringuserAgent="Mozilla/5.0(WindowsNT6.1)AppleWebKit/537.36(KHTML,likeGecko)Chrome/29.0.1547.66Safari/537.36"; //配置您申请的KEY publicstaticfinalStringAPPKEY="2c*********************************"; publicstaticStringget(Stringurl){ returnnull; } publicstaticvoidmain(String[]args){ Stringa=JuHeChatUtil.getRequest1("今天天气如何?"); logger.info(a); } //1.问答 publicstaticStringgetRequest1(Stringmsg){ Stringresult=null; Stringurl="http://op.juhe.cn/robot/index";//请求接口地址 Mapparams=newHashMap();//请求参数 params.put("key",APPKEY);//您申请到的本接口专用的APPKEY params.put("info",msg);//要发送给机器人的内容,不要超过30个字符 params.put("dtype","json");//返回的数据的格式,json或xml,默认为json params.put("loc","");//地点,如北京中关村 params.put("lon","");//经度,东经116.234632(小数点后保留6位),需要写为116234632 params.put("lat","");//纬度,北纬40.234632(小数点后保留6位),需要写为40234632 params.put("userid","");//1~32位,此userid针对您自己的每一个用户,用于上下文的关联 try{ result=net(url,params,"GET"); logger.info(result); JSONObjectobject=JSONObject.fromObject(result); if(object.getInt("error_code")==0){ result=object.getJSONObject("result").getString("text"); }else{ result=object.get("error_code")+":"+object.get("reason"); } }catch(Exceptione){ e.printStackTrace(); } returnresult; } //2.数据类型 publicstaticvoidgetRequest2(){ Stringresult=null; Stringurl="http://op.juhe.cn/robot/code";//请求接口地址 Mapparams=newHashMap();//请求参数 params.put("dtype","");//返回的数据格式,json或xml,默认json params.put("key",APPKEY);//您申请本接口的APPKEY,请在应用详细页查询 try{ result=net(url,params,"GET"); JSONObjectobject=JSONObject.fromObject(result); if(object.getInt("error_code")==0){ logger.info(object.get("result")); }else{ logger.info(object.get("error_code")+":"+object.get("reason")); } }catch(Exceptione){ e.printStackTrace(); } } /** * *@paramstrUrl请求地址 *@paramparams请求参数 *@parammethod请求方法 *@return网络请求字符串 *@throwsException */ publicstaticStringnet(StringstrUrl,Mapparams,Stringmethod)throwsException{ HttpURLConnectionconn=null; BufferedReaderreader=null; Stringrs=null; try{ StringBuffersb=newStringBuffer(); if(method==null||method.equals("GET")){ strUrl=strUrl+"?"+urlencode(params); } URLurl=newURL(strUrl); conn=(HttpURLConnection)url.openConnection(); if(method==null||method.equals("GET")){ conn.setRequestMethod("GET"); }else{ conn.setRequestMethod("POST"); conn.setDoOutput(true); } conn.setRequestProperty("User-agent",userAgent); conn.setUseCaches(false); conn.setConnectTimeout(DEF_CONN_TIMEOUT); conn.setReadTimeout(DEF_READ_TIMEOUT); conn.setInstanceFollowRedirects(false); conn.connect(); if(params!=null&&method.equals("POST")){ try{ DataOutputStreamout=newDataOutputStream(conn.getOutputStream()); out.writeBytes(urlencode(params)); }catch(Exceptione){ e.printStackTrace(); } } InputStreamis=conn.getInputStream(); reader=newBufferedReader(newInputStreamReader(is,DEF_CHATSET)); StringstrRead=null; while((strRead=reader.readLine())!=null){ sb.append(strRead); } rs=sb.toString(); }catch(IOExceptione){ e.printStackTrace(); }finally{ if(reader!=null){ reader.close(); } if(conn!=null){ conn.disconnect(); } } returnrs; } //将map型转为请求参数型 publicstaticStringurlencode(Mapdata){ StringBuildersb=newStringBuilder(); for(Map.Entryi:data.entrySet()){ try{ sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&"); }catch(UnsupportedEncodingExceptione){ e.printStackTrace(); } } returnsb.toString(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。