Android Studio调用科大讯飞关键词提取接口

1.在讯飞开放平台创建应用

2.下载关键词提取Java代码

2.1 代码解压,将下图3个java文件复制到Android项目的与MainActivity.java同一个目录下

在这里插入图片描述
在这里插入图片描述

2.2 我把ltp中的main函数改成了tuque函数,并传入了参数,以便在MainActivity中调用。

public static void tuque(String TEXT, TextView guarani) throws IOException { //提取关键词
        System.out.println(TEXT.length());
        Map<String, String> header = buildHttpHeader();
        String result = HttpUtil.doPost1(WEBTTS_URL, header, "text=" + URLEncoder.encode(TEXT, "utf-8"));
        System.out.println("itp 接口调用结果:" + result);
        guarani.setText(result);
    }

在MainActivity.java中加入如下代码:

String TEXT = "我爱机器学习";
                try {
                    ltp.tuque(TEXT, guarani);
                } catch (IOException e) {
                    e.printStackTrace();
                }

其中,guarani是我定义的在界面上显示结果的TextView控件。

2.3 (坑1)此时ltp.java中的

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
这两行代码会变红,这时要在build.gradle中添加依赖:
在这里插入图片描述

2.4 (坑2)需要把科大讯飞的接口地址的http改成https。否则排除万难可以跑通却不显示结果。因此我打印出异常,发现是:W/System.err: java.io.IOException: Cleartext HTTP traffic to *** not permitted

因为Android9.0(API 28)对http请求的限制。规定所有应用程序默认使用 Https进行网络通信,不能使用Http进行明文通信。这个规定导致app的Http访问权限受限,从而抛出异常。在官网给的demo里接口地址是
在这里插入图片描述
而讯飞开放平台控制台给的:
在这里插入图片描述

2.5 (坑3)此时运行到真机会报错,需要在app的build.gradle中添加如下代码:

packagingOptions {
exclude ‘META-INF/DEPENDENCIES’
exclude ‘META-INF/NOTICE’
exclude ‘META-INF/LICENSE’
exclude ‘META-INF/LICENSE.txt’
exclude ‘META-INF/NOTICE.txt’
}
我看的这篇博客

2.6 (坑4)现在运行到真机还是会报错,因为现在是在主进程访问接口,可能会造成阻塞,所以Android Studio报错,最简单的方法是强制Android Studio忽略这个问题,我在MainActivity.java里的onCreate方法前加上

@SuppressLint("NewApi")

在onCreate方法里加上

StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

在这里插入图片描述

3 完成

我到这里就跑通并可以正确显示结果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值