基于Android的智能聊天机器人的设计与实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Android的智能聊天机器人的设计与实现

学院名称:

专业:

班级:

学号:

姓名:

任课教师:

安卓智能聊天机器人开发(一)

这个聊天机器人有点像前段时间很火的一个安卓应用——小黄鸡

应用的实现其实很简单,网上有许多关于智能机器人聊天的接口,我们只需要去调用对应的接口,遵守它的API开发规范,就可以获取到我们想要的信息

这里我使用的接口是——图灵机器人(/openapi/)这个接口给我们返回的是Json字符串,我们只需要对它进行Json字符串解析,就可以实现这个应用。

开发步骤:

首先我们需要到这个图灵机器人的官网去注册一个账号,他会给我们一个唯一Key,通过这个Key和对应的API开发规范,我们就可以进行开发了。

然后在这个(/openapi/cloud/access_api.jsp)网址里可以找到相关的开发介绍

比如:请求方式,参数,返回参数,包括开发范例,一些返回的编码等信息

这里是官方提供的一个调用小案例(JAVA),这里我也顺带贴一下

/** 调用图灵机器人平台接口

* 需要导入的包:commons-logging-1.0.4.jar、httpclient-4.3.1.jar、httpcore-4.3.jar

*/

public static void main(String[] args) throws IOException {

String INFO = URLEncoder.encode("北京今日天气", "utf-8");

String requesturl = "/openapi/api?key= 注册激活返回的Apikey&info="+INFO;

HttpGet request = new HttpGet(requesturl);

HttpResponse response =

HttpClients.createDefault().execute(request);

//200即正确的返回码

if(response.getStatusLine().getStatusCode()==200){

String result = EntityUtils.toString(response.getEntity());

System.out.println("返回结果:"+result);

}

}

好了,接下来开始实战吧,这个应用我打算写成两篇文章

第一篇讲下关于如何调用接口,从网上获取数据,包括解析Json字符串

第二篇会把这些获取的数据嵌入到安卓应用

首先,先写一个工具类,这个工具类是用来获取用户输入的信息并返回服务器提供的数据的

这里面用到了一个第三方提供的JAR包,Gson它是谷歌提供给我们用来使Json 数据序列化和反序列化的

关于Gson的使用我之前写过一篇笔记,不熟悉的朋友可以看看:Gson简要使用笔记(/lichenwei/p/3987429.html)

代码如下:具体看注释

package com.example.utils;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.UnsupportedEncodingException;

import .HttpURLConnection;

import .MalformedURLException;

import .URLEncoder;

import java.util.Date;

import android.util.Log;

import com.example.pojo.Message;

import com.example.pojo.Message.Type;

import com.example.pojo.Result;

import com.google.gson.Gson;

/**

*

* 获取信息帮助类传入用户输入的字符,给出相对应的信息

*

*/

public class GetDataUtils {

private static final String API_KEY = "这里填写官方提供的KEY";// 申请的API_KEY值

private static final String URL =

"/openapi/api";// 接口请求地址

public String getChat(String msg) {//这个方法是获取服务端返回回来的Json数据,msg为用户输入的信息

String result = "";// 存放服务器返回信息的变量

InputStream inputStream = null;

ByteArrayOutputStream outputStream = null;

try {

// 进行资源请求

.URL url = new .URL(getMsgUrl(msg));

HttpURLConnection httpURLConnection = (HttpURLConnection) url

.openConnection();// 打开资源连接

// HttpURLConnection参数设定

httpURLConnection.setReadTimeout(5 * 1000);

httpURLConnection.setConnectTimeout(5 * 1000);

httpURLConnection.setRequestMethod("GET");

inputStream = httpURLConnection.getInputStream();// 获取一个输入流接收服务端返回的信息

int len = -1;

byte[] bs = new byte[124];// 用来接收输入流的字节数组

outputStream = new ByteArrayOutputStream();// 用一个输出流来输出刚获取的输入流所得到的信息

while ((len = inputStream.read(bs)) != -1) {// 从输入流中读取一定数量的字节,并将其存储在缓冲区数组

// bs 中

outputStream.write(bs, 0, len);// 往输入流写入

}

相关文档
最新文档