Java利用图灵机器人接口实现简单的聊天程序

package test;

import java.awt.EventQueue;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.Timer;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class Test{

    private JFrame frame;
    private JTextField textField;
    private JLabel lblNewLabel,lblNewLabel_1;
    private JTextArea textArea;
    /**
     * Launch the application.
     */

     private void setTimer(JLabel time){
            final JLabel varTime = time;
            Timer timeAction = new Timer(1000, new ActionListener() {          

                public void actionPerformed(ActionEvent e) {
                    long timemillis = System.currentTimeMillis();
                    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    varTime.setText(df.format(new Date(timemillis)));
                }
            });
            timeAction.start();
        }
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Test window = new Test();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public Test() {
        initialize();
    }
    String chat(String quesiton) throws IOException
    {
        String APIKEY="f0feee3416c846a6be5fdc523b372c20";
        String INFO=URLEncoder.encode(quesiton, "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();

        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();

        String[] ss = new String[10];
        String s = sb.toString();
        String answer;
        ss = s.split(":");
        answer = ss[ss.length-1];
        answer = answer.substring(1,answer.length()-2);
        return answer;
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame("Origami");
        frame.setResizable(false);
        frame.setBackground(Color.WHITE);
        frame.setBounds(100, 100, 729, 424);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        ImageIcon icon=new ImageIcon(getClass().getResource("/timg.jpg"));
        lblNewLabel=new JLabel(icon);
        lblNewLabel.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                textArea.setText("干嘛点我...");
            }
        });
        lblNewLabel.setBounds(423, 0, 277, 309);
        frame.getContentPane().add(lblNewLabel);

        textField = new JTextField();
        textField.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String question=textField.getText();
                try {
                    String answer=chat(question);
                    textArea.setText(answer);
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        });
        textField.setBounds(14, 322, 395, 24);
        frame.getContentPane().add(textField);
        textField.setColumns(10);

        lblNewLabel_1 = new JLabel();
        lblNewLabel_1.setBounds(516, 314, 143, 41);
        frame.getContentPane().add(lblNewLabel_1);
        this.setTimer(lblNewLabel_1);

        textArea = new JTextArea();
        textArea.setLineWrap(true);
        textArea.setWrapStyleWord(true);
        textArea.setBounds(14, 13, 395, 296);
        frame.getContentPane().add(textArea);
    }
}
时间: 2024-10-09 18:17:23

Java利用图灵机器人接口实现简单的聊天程序的相关文章

Java接入图灵机器人,实现与机器人聊天

很多人都玩过微信,其中就有与机器人聊天的功能: 这个图灵机器人网站提供了相关的API接口,可以在程序中利用,过程如下: 1.在图灵机器人网(http://www.tuling123.com/openapi/cloud/home.jsp)注册账户,然后他就会给你相应的API KEY,这在程序中需要用到: 2.在Java程序中接入机器人: String APIKEY = "官网给你的api key";        String INFO = URLEncoder.encode("

python用requests和urllib2两种方式调用图灵机器人接口

最近从网上看见个有意思的图灵机器人,可以根据不同的信息智能回复,比如你发送一个"讲个笑话",它就会给你回复一个笑话,或者"北京天气"就可以回复天气情况,或者英文单词然后给你回复中文释义.官方文档中有php和java的调用方式,我就弄个python的吧. 注册获取API KEY 这一步很简单,直接注册一个账号就可以看到你的API KEY.这个KEY我们以后发送get请求的时候需要用到. Pythoh调用示例 掉用也比较简单,主要是模拟post 请求.然后解析 json

Java利用webservice创建接口案例源码

环境要求: JDK1.7,并配置Java的环境变量 BaseDao  接口: /** * 要使得成为一个可供访问的接口,必须添加:@WebService * */ @WebServicepublic interface BaseDao {    //添加一个加法的接口        @WebResult(name="addddddre")    public int add(@WebParam(name="add01")int a,@WebParam(name=&q

基于Java实现hello/hi简单网络聊天程序

目录 Socket简要阐述 Socket的概念 Socket原理 hello/hi的简单网络聊天程序实现 服务器端 客户端 程序执行结果 跟踪分析调用栈 & Linux API对比 创建ServerSocket 调用栈图示 源码分析 Socket绑定 调用栈图示 源码分析 Socket监听 调用栈图示 源码分析 Socket Accept 调用栈图示 源码分析 Java Socekt API与Linux Socket API 参考链接 Socket简要阐述 Socket的概念 Socket的英文

从一个简单的聊天程序SimpleChat看VPN技术

SimpleVPN写好了以后,感觉比较简单,我觉得只有简单的东西才经得起折腾,才能全民折腾,所以说SimpleVPN还不够简单,本文来一个更加简单的,展示一个超级简单的点对点聊天程序,而且还带简单加密哦.顺便,我们再来看下,到底什么是VPN以及怎样实现它.       QQ如今才刚刚行过成年之礼,典型的90后00前,却早已到了后浪把前浪拍到岸边的砍儿,果不其然,被10后的微信给逆袭了...好在都是腾讯的,这就把竞争收敛到了公司内部,不然这将意味着一个巨人的倒下,太可怕了.多年前,很多人逆向过QQ

C#编写简单的聊天程序(转)

这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考.文章大体分为四个部分:程序的分析与设计.C#网络编程基础(篇外篇).聊天程序的实现模式.程序实现. 程序的分析与设计 1.明确程序功能 如果大家现在已经参加了工作,你的经理或者老板告诉你,“小王,我需要你开发一个聊天程序”.那么接下来该怎么做呢?你是不是在脑子里有个雏形,然后就直接打开VS2005开始设计窗体,编写代码了呢?在开始之前,我们首先需要

使用Ajax long polling实现简单的聊天程序

关于web实时通信,通常使用长轮询或这长连接方式进行实现. 为了能够实际体会长轮询,通过Ajax长轮询实现了一个简单的聊天程序,在此作为笔记. 长轮询 传统的轮询方式是,客户端定时(一般使用setInterval)向服务器发送Ajax请求,服务器接到请求后马上返回响应信息.使用这种方式,无论客户端还是服务端都比较好实现,但是会有很多无用的请求(服务器没有有效数据的时候,也需要返回通知客户端). 而长轮询是,客户端向服务器发送Ajax请求,服务器接到请求后保持住连接,直到有新消息才返回响应信息,客

调用图灵机器人API实现简单聊天

昨天突然想在Android下调用图灵机器人API实现聊天的功能.说干就干,虽然过程中遇见一些问题,但最后解决了的心情真好. API接口是(key值可以在图灵机器人网站里注册得到) www.tuling123.com/openapi/api?key=1702c05fc1b94e2bb4de7fb2e61b21a3&info=hello 最后hello是讲的话,访问这个网站会访问一个JSON格式的内容. text关键字就是访问的内容,只要把这个关键字的内容截取下列就行了. 下面开始写代码. 首先布个

访问图灵机器人接口请求数据

# Third-party Library import requests # POST请求参数 args = { "reqType": 0, "perception": { "inputText": { "text": "北京" } }, "userInfo": { "apiKey": "eaf3daedeb374564bfe9db10044bc20b&q