与图灵机器人聊天

今天下午闲着没事做,上网随便逛逛一些免费是数据接口,偶然的看到了图灵机器人。加上最近刚刚学习用HttpURLConnection和HttpClient从网上获取数据和json数据格式的解析,心血来潮的写了与图灵机器人聊天的小程序。

package com.qianfeng.tuling;


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;


import com.google.gson.Gson;


public class HttpConnectionTuLing {


public static TuLing getTuLing(String info) throws Exception {


Gson gson = new Gson();
URL url = new URL("http://www.tuling123.com/openapi/api?key=cf140da458a1d10803883f4c99d7efec&info=" + info
+ "&userid=126663");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置响应时间info
connection.setConnectTimeout(5000);
// 设置提交方式
connection.setRequestMethod("GET");
connection.connect();


StringBuffer buf = new StringBuffer();
if (connection.getResponseCode() == 200) {
InputStream is = connection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is, "utf-8"));
char[] b = new char[1024];
int len;
while ((len = bufferedReader.read(b)) != -1) {
buf.append(new String(b, 0, len));
}
System.out.println(buf.toString());
TuLing tuLing = gson.fromJson(buf.toString(), TuLing.class);
if( tuLing != null){
return tuLing;
}
}
return null;
}
}


package com.qianfeng.tuling;


import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.InetAddress;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class TuLingServer extends JFrame {


private static final long serialVersionUID = 4902403865057127055L;


private JTextArea info; // 显示聊天消息
private JTextField msg; // 发送消息的文本框
private JButton send; // 发送按钮


public TuLingServer() {
this.setTitle("图灵聊天窗口");
this.setSize(400, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);


info = new JTextArea(10,30);

JScrollPane jsp = new JScrollPane(info);


msg = new JTextField();
send = new JButton("发送");
JPanel pnlSouth = new JPanel(new BorderLayout()); // 放置最下边的两个组件
pnlSouth.add(msg);
pnlSouth.add(send, BorderLayout.EAST);


// 添加到界面显示
this.add(jsp, BorderLayout.CENTER);
this.add(pnlSouth, BorderLayout.SOUTH);


// 添加按钮的事件监听
send.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {
String sendMsg = msg.getText();
String ling = "";
try {
info.append(InetAddress.getByName("localhost").getHostAddress() + "说: " + sendMsg + "\n");
msg.setText("");
} catch (Exception e1) {
e1.printStackTrace();
}
try {
TuLing tuLing = HttpConnectionTuLing.getTuLing(sendMsg);
if(tuLing != null){
ling = tuLing.getText();
if(tuLing.getCode().equals("100000")){
info.setAlignmentX(1);
info.append("图灵机器人说:" +ling +"\n");
}else if(tuLing.getCode().equals("305000")){
info.append("图灵机器人说:" +ling +"\n");
for(int i= 0; i < tuLing.getList().size(); i++){
TicketList ticketList = tuLing.getList().get(i);
info.append("trainnum: " + ticketList.getTrainnum()+"\n start: "+ticketList.getStart() +"\n terminal: " +ticketList.getTerminal() +"\n starttime: " +ticketList.getStarttime()+"\n endtime: " + ticketList.getEndtime()+"\n");
}
}
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
// 显示
this.setVisible(true);
}


public static void main(String[] args) {
new TuLingServer();
}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值