简介
# 简介
二次开发接口用于控制播放盒或者获取播放盒的信息,使用协议为HTTP。所有的二次开发接口可分为八类:通用,网络,外设,节目,排程,云平台,接收卡,局域网安全。
# Basic认证
当播放盒开启局域网加密时,调用接口需要加上Basic认证。(局域网加密相关接口见第八类)
- postman示例
- Java代码示例(Android平台OkHttp框架,其它方式请自行添加对应的Basic认证请求头)
String userName = "admin";
String password = "console";
String auth = "Basic " + android.util.Base64.encodeToString((userName + ":" + password)
.getBytes("utf-8"), Base64.NO_WRAP);
Response response = new OkHttpClient().newCall(new Request.Builder()
.post(requestBody)
.url(url)
.addHeader("Authorization", auth)
.build()).execute();
- bat命令 (假设用户名为admin密码为console)
curl -X PUT http://admin:console@192.168.42.129/api/adb
# 文档说明
1.请求体中的String类型数据输入需要加上双引号 " ",int类型不需要。
2.在播放盒外部发起请求,可以使用8989、80端口发起请求;在播放盒内部发起请求(例如开发一个APK安装到播放盒并调用接口、目标ip为localhost),请使用8989端口,80端口无法请求到服务器。
3.如需使用第七类接收卡相关接口,请勿打开LEDVISON或PlayerMaster或Ledupgrade时调用该系列接口(会抢占socket导致失败)。
4.Android APK开发请求接口示例:
在清单文件中添加网络请求权限
<uses-permission android:name="android.permission.INTERNET" />
在清单文件中app标签中添加属性,允许明文请求
android:usesCleartextTraffic="true"
发起请求
HandlerThread handlerThread = new HandlerThread("worker");
handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper());
handler.post(this::request);
private void request() {
String TAG = "http request demo";
String url = "http://localhost:8989/api/info.json";
Request request = new Request.Builder()
.get()
.url(url)
.addHeader("Content-Type", "application/json; charset=utf-8")
.build();
Response response;
try {
response = new OkHttpClient.Builder().build().newCall(request).execute();
if (response != null) {
Log.d(TAG, "request: code = " + response.code());
ResponseBody body = response.body();
if (body != null) {
Log.d(TAG, "request: body = \n"
+ body.string());
}
}
} catch (IOException e) {
e.printStackTrace();
}
}