美文网首页
【Android】聊天机器人*第一课

【Android】聊天机器人*第一课

作者: 吃吃吃鱼呀 | 来源:发表于2016-11-20 20:28 被阅读32次

在这里我将按照自己一步步的顺序写下我写完app 的过程。

1、去www.tuling123.com注册获取APIKey

在网站中,进行注册,创建聊天机器人,获取自己的key

机器人

根据网站的介绍,你可以进行简单的测试,机器人每次对于应答的条件是:http://www.tuling123.com/openapi/api +apikey +info

例如我这里测试:

打到浏览器中,就可以获得返回的数据:

  • {"code":100000,"text":"亲爱的,悄悄地告诉我你在哪个城市?"}

2、获取请求数据。

先写一个HttpData类,里面是一个AsyncTask异步请求。

package com.ych.wechat;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.os.AsyncTask;

public class HttpData extends AsyncTask<String,Void,String> {

    private HttpClient mHttpClient;
    private HttpGet mHttpGet;
    private HttpResponse mHttpResponse;
    private HttpEntity mHttpEntity;
    private InputStream in;
    private HttpGetDataListener listener;
    private String url;

    public HttpData(String url,HttpGetDataListener listener){

        this.url=url;
        this.listener = listener;
    }

    @Override
    protected String doInBackground(String... params) {
        try {
            mHttpClient = new DefaultHttpClient();
            mHttpGet = new HttpGet(url);
            mHttpResponse = mHttpClient.execute(mHttpGet);
            mHttpEntity = mHttpResponse.getEntity();
            in = mHttpEntity.getContent();
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String line = null;
            StringBuffer sb = new StringBuffer();
            while((line = br.readLine())!=null){
                sb.append(line);
            }

            return sb.toString();
        }catch (Exception e){

        }
        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        listener.getDataurl(s);
        super.onPostExecute(s);
    }
}

其中,我们看到有HttpGetDataListener这个类,它其实只是一个另写的接口:

package com.ych.wechat;

public interface HttpGetDataListener {
    void getDataurl(String data); 
}

然后就是我们的主函数,先把它实现刚才的接口:

package com.ych.wechat;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity implements HttpGetDataListener{

    private HttpData httpdata;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        httpdata = (HttpData) new HttpData("http://www.tuling123.com/openapi/api?key=06423f1d68f64588b487ddeb031c8795&info=天气怎么", 
                this).execute();
    }

    @Override
    public void getDataurl(String data) {
        // TODO Auto-generated method stub
        System.out.println(data);
    }
}

这里只是简单的把请求放在onCreate中进行测试,后面会修改。

写到这里,基本的请求已经可以进行了,我们运行程序,可以看到结果就如之前在浏览器中看到的一样,是一个json结果。

记得在配置文件中添加权限:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

PS:
在这要注意的是,在android6.0(包括)以后,Google已经移除了移除了Apache HttpClient相关的类,推荐使用HttpUrlConnection

相关文章

网友评论

      本文标题:【Android】聊天机器人*第一课

      本文链接:https://www.haomeiwen.com/subject/qseypttx.html