java基础-对于这段图灵机器人调用代码,我不太理解,可以帮帮我么?

问题描述

对于这段图灵机器人调用代码,我不太理解,可以帮帮我么?

主类
enter code here
package zlexample.tuling;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;

public class MainActivity extends ActionBarActivity implements HttpGetDataListener {

private HttpData data;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    data=(HttpData) new HttpData("http://www.tuling123.com/openapi/api?key=cc1dc647bdf0dc4bc7af64edbbda8346&info=+北京", this).execute();
}

@Override
public void getDataUrl(String data) {
    // TODO Auto-generated method stub
    System.out.println(data);   //这里的data和上面new的data一样么(我感觉不一样的,因为httpData类中的listener的调用,给data赋值了么???)?????还有着这里重写这个方法干什么的??
    //莫非是因为定义了接口就必须重写这个方法??接口实际的作用只是限制了data的数据类型??
}

}
另一个类httpData

public class HttpData extends AsyncTask{

private HttpClient httpClient;
private HttpGet httpGet;
private String url;
private HttpResponse httpResponse;
private HttpEntity httpEntity;
private InputStream in;
private HttpGetDataListener listener;
public HttpData(String url,HttpGetDataListener listener) {
    // TODO Auto-generated constructor stub
    this.url=url;
    this.listener=listener;
}
@Override
protected String doInBackground(String... arg0) {
    // TODO Auto-generated method stub
    httpClient=new DefaultHttpClient();
    httpGet=new HttpGet(url);
    try {
        httpResponse=httpClient.execute(httpGet);
        httpEntity=httpResponse.getEntity();
        in=httpEntity.getContent();
        BufferedReader buReader=new BufferedReader(new InputStreamReader(in));
        String line=null;
        StringBuffer stringBuffer = new StringBuffer();
        while ((line=buReader.readLine())!=null) {
            stringBuffer.append(line);
        }
        return stringBuffer.toString();
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return null;
}
@Override
protected void onPostExecute(String result) {
    // TODO Auto-generated method stub
    listener.getDataUrl(result);
    super.onPostExecute(result);

}

}
定义的一个接口
package zlexample.tuling;

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

时间: 2024-11-17 04:34:06

java基础-对于这段图灵机器人调用代码,我不太理解,可以帮帮我么?的相关文章

JAVA基础培训(2) 熟悉方法的调用

我们上一个只用直接的输出语句,打印出可Hello World 查看复制到剪切板打印 System.out.println("Hello World!"); 这里我们讲使用方法,来实现输出这个 Hello World的功能.我们先看代码. 查看复制到剪切板打印 // package 影响到你的类存储目录和访问方式 // 这个课程2,我们使用了lession2,对应的目录也是 // E:\javalession\base\src\lession2 package lession2; /**

php-微信PHP服务器端调用图灵机器人接口失败

问题描述 微信PHP服务器端调用图灵机器人接口失败 采用官方提供的demo但是没有成功,求大神指点啊! protected function talk($content){ $key = 'xxxxxxx'; //这里填写你的apikey $re = json_decode(file_get_contents('http://www.tuling123.com/openapi/api?key='.$key.'&info='.$content),true); $code = $re['code']

如何在微信公众号调用图灵机器人

  注册机器人账号 百度搜索"图灵机器人",注册账号,打开如图所示界面 打开微信公众号 登录您的微信平台,在左侧菜单中选择"开发者中心" 复制URL及其它调用信息 在个人中心复制"微信网址",其它不用管 在公众号启用 回到我们的公众号,开发者中心里,将URL复制进框内,token令牌输入"test",再点击密钥随机生成,点击确定. 大功告成 去公众号里试一下吧,萌萌哒机器人陪你聊天.与你对骂,还能查单词查天气哦 个性化设置 打

线程-java中下面这段代码是一个匿名对象传入一个匿名对象在调用start方法吗

问题描述 java中下面这段代码是一个匿名对象传入一个匿名对象在调用start方法吗 new Thread(new Runnable() {.....省略代码若干..........}).start(); 上面这段代码是一个匿名对象传入一个匿名对象在调用start方法吗 还是一个匿名类传入一个匿名对象再调用start方法 我有点分不清匿名对象和匿名类呢 解决方案 new Runnable() {.....省略代码若干..........} 匿名类,因为Runnable是接口,需要实现类 new

Java ssh框架开发的网站想每隔一段时间自动调用一段代码要怎么实现?

问题描述 Java ssh框架开发的网站想每隔一段时间自动调用一段代码要怎么实现? 用Java ssh框架写一个酒店管理系统,其中有一个预定客房模块,我希望过一天就查一下预定客房记录表如果某个客房这天已经被预定了就更新它的状态,这要怎么实现? 解决方案 可以使用quartz,具体用法google下. 解决方案二: 一个简单但是不好的方法,在js中设置个定时器(setinterval()),每隔多少时间异步调用查询预订客房记录 解决方案三: 使用Spring中的定时器把 解决方案四: 使用spri

Java基础知识二十九

Java 基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 类:类是一个模板,它描述一类对象的行为和状态. 方法:方法就是行为,一个类可以有很多方法.逻辑运算.数据修改以及所有动作都是在方法中完成的. 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定. 如果你想学

Java基础之003-Java语法

Java基础之003-Java语法                                        35岁学习Java 1Java语言基础组成 1.1关键字 1.2标识符 A.     在程序中自定义的一些名称. B.     由26个英文字母大小写,数字:0-9 符号:_ $ 组成 C.     定义合法标识符规则: 1)     数字不可以开头. 2)     不可以使用关键字. D.     Java中严格区分大小写. E.     注意:在起名字的时,为了提高阅读性,要尽量

Java 基础:hashCode方法

一.前言     泥瓦匠最近被项目搞的天昏地暗.发现有些要给自己一些目标,关于技术的目标: 专注很重要.专注Java 基础 + H5(学习)     其他操作系统,算法,数据结构当成课外书博览.有时候,就是那样你越是专注方面越多对自己打击越大学啥啥都不好.今天带来Java基础:hashCode方法 二.hashCode方法     hash code(散列码,也可以叫哈希码值)是对象产生的一个整型值.其生成没有规律的.二者散列码可以获取对象中的信息,转成那个对象的"相对唯一"的整型值.

Java基础02 方法与数据成员

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢!   在Java基础01 从HelloWorld到面向对象,我们初步了解了对象(object).对象中的数据成员表示对象的状态.对象可以执行方法,表示特定的动作. 此外,我们还了解了类(class).同一类的对象属于相同的类型(type).我们可以定义类,并使用该定义来产生对象. 我们进一步深入到对象.了解Java中方法与数据成员的一些细节.   调用同一对象的数据成员 方法可以调