使用java接入图灵机器的聊天程序

xiaoxiao2021-02-28  39

因为需要用到`KEY`和首先需要自己去图灵官方注册一个账户,申请使用体验版本的图灵。

接入图灵的API有两种请求方式,一种是get,一种是post。

get:

public class Tuling { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String APIKEY = "18764c2743cb4280a1e7194c57c8ce60"; String question = "你好?"; String INFO = URLEncoder.encode(question, "utf-8"); String getURL = "http://www.tuling123.com/openapi/api?key=" + APIKEY+ "&info=" + INFO; URL getUrl = new URL(getURL); HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection(); connection.connect(); // 取得输入流,并使用Reader读取 BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")); StringBuffer sb = new StringBuffer(); String line = ""; while ((line = reader.readLine()) != null) { sb.append(line); } reader.close(); // 断开连接 connection.disconnect(); System.out.println(sb); } }

post:

mport java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.Scanner; import net.sf.json.JSONObject; import java.io.*; public class Tuling2 { public static final String URL="http://www.tuling123.com/openapi/api"; public static void main(String[] args) { String end = new String(); JSONObject jsonObject; Scanner input = new Scanner(System.in); System.out.println("你好我是图灵机器人"); while (true) { System.out.println(); end = input.nextLine(); if (end != null) { String data = InputData(end); jsonObject = JSONObject.fromObject(data); //指定获取text的值 String text = jsonObject.getString("text"); System.out.println(text); } } } public static String InputData(String info) { JSONObject jsonParam; //创建json并加入键和值 jsonParam = new JSONObject(); jsonParam.put("key", "18764c2743cb4280a1e7194c57c8ce60"); jsonParam.put("info", info); String data = GetJsonData(jsonParam); return data; } public static String GetJsonData (JSONObject jsonParam){ StringBuffer sb = new StringBuffer(); try { //创建URL URL url = new URL(URL); //建立连接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); //设置允许输出 conn.setDoInput(true); //设置允许输入 conn.setRequestMethod("POST"); // 设置请求方式 conn.setRequestProperty("Content-Type", "json"); //设置请求属性 //建立字符输出转换流,向指向的URL传入参数,并且转换UTF-8文本格式 ,解决中文乱码问题 OutputStreamWriter ot = new OutputStreamWriter(conn.getOutputStream(),"UTF-8"); // 写入请求的字符串 ot.write(jsonParam.toString()); ot.flush(); //刷新缓冲 ot.close(); //关闭 try { String readLine; //建立字符转换流 把字节转换成字符 InputStreamReader isr =new InputStreamReader(conn.getInputStream() ,"UTF-8"); BufferedReader bufin = new BufferedReader(isr); //循环写入字节 并转换成字符 while ((readLine = bufin.readLine()) != null){ sb.append(readLine); } isr.close(); } catch (Exception e1) { e1.printStackTrace(); } } catch (Exception e) { // TODO: handle exception } return sb.toString(); } }

效果图:

转载请注明原文地址: https://www.6miu.com/read-2612359.html

最新回复(0)