项目中需要调用第三方语音电话接口,代码如下:

1.pom.xml引入websocket依赖

org.java-websocket

Java-WebSocket

1.3.8

2.YiWeiDialUtil.java

package com.yudu.sms.util;

import com.alibaba.fastjson.JSONObject;

import org.java_websocket.WebSocket;

import org.java_websocket.client.WebSocketClient;

import org.java_websocket.handshake.ServerHandshake;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import java.net.URI;

import java.net.URISyntaxException;

public class YiWeiDialUtil {

private static final Logger logger = LoggerFactory.getLogger(YiWeiDialUtil.class);

public static void dial(String ws, String phone, String recordName) {

try {

URI uri = new URI(ws);

WebSocketClient client = new WebSocketClient(uri) {

@Override

public void onOpen(ServerHandshake serverHandshake) { }

@Override

public void onMessage(String s) {

logger.info("返回的数据:" + s);

JSONObject jo = JSONObject.parseObject(s);

String dynamicdata = jo.getString("dynamicdata");

if (dynamicdata != null) {

JSONObject jo_dynamicdata = JSONObject.parseObject(dynamicdata);

String realtimestate = jo_dynamicdata.getString("realtimestate");

if (realtimestate.equals("outconnected")) {

send("{\"command\":\"closeheadsettochannel\"}");

String recordMp3 = System.getProperty("user.dir") + "\\src\\main\\resources\\" + recordName + ".mp3";

String record = "{\"command\":\"PlayStartRecord\",\"arguments\":{\"content\":\"" + recordMp3 + "\"}}";

send(record);

}

}

}

@Override

public void onClose(int i, String s, boolean b) { }

@Override

public void onError(Exception e) {

logger.error(e.getMessage());

}

};

//建立连接

client.connect();

while (!client.getReadyState().equals(WebSocket.READYSTATE.OPEN)) {

logger.info("连接中...");

}

String dial = "{\"command\":\"Dial\",\"arguments\":{\"phone\":\"" + phone + "\"}}";

client.send(dial);

} catch (URISyntaxException e) {

logger.info(e.getMessage());

}

}

}

···

java socket调用接口_java调用websocket接口相关推荐

  1. java短信接口_java调用短信接口代码

    原标题:java调用短信接口代码 短信接口被广泛应用在网站.app应用以及软件系统中,如用户注册.密码找回.会员服务.系统消息通知等应用场景,那么如何调用短信接口呢?下面以java开发语言为例,为大家 ...

  2. java调用restful接口_Java调用RESTful接口的几种方式

    前端一般通过Ajax来调用,后端调用的方式还是挺多的,比如HttpURLConnection,HttpClient,Spring的RestTemplate 服务端代码如下: 服务端接口请求的URL:h ...

  3. java调c的接口_Java调用C接口的简单示例

    Java调用C接口的简单示例 正好需要用到Java调用dll里的C接口,想到自己做个简单的例子.我们可能需要自己生成dll文件,下边介绍一下,详细的步骤.主要参考https://blog.csdn.n ...

  4. php接口和java接口_java和php接口的区别是什么

    java和php接口的区别是:1.php接口中的抽象方法只能是public的,默认也是public权限:2.java中私有方法使用private修饰,供接口中的默认方法或者静态方法调用. [相关学习推 ...

  5. java 内部类声明 抽象类_Java 抽象类、接口、内部类

    抽象类 当编写一个类时,常常会为该类定义一些方法,这些方法用以描述该类的行为方式,那么这些方法都有具体的方法体.但在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确地知道这些子类如何实 ...

  6. java list 接口_Java 集合 List接口

    [TOC] List接口 概述有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的 ...

  7. java 子类必须实现_Java学习之接口的子类必须实现接口的全部方法吗?

    接口的子类必须实现接口的全部方法吗? 接口的子类必须实现接口中全部的方法吗?答案:不是.原因如下: 如果子类是非抽象类,则必须实现接口中的所有方法: 如果子类是抽象类,则可以不实现接口中的所有方法,因 ...

  8. java抽象类实现接口_Java——抽象类实现接口

    在Java中,使用抽象类来实现接口,并不是毫无作用.相反,有时间有很大的作用. 当你只想实现接口中的个别方法(不是所有方法)时,你可以先写一个抽象类来实现该接口,并实现除了你想要的方法之外的所有方法( ...

  9. java抽象类和接口_Java抽象类和接口类

    Java中接口和抽象类的区别是什么?什么时候用接口?什么时候用抽象类?抽象类和接口存在的意义是什么?能解决哪些编程问题? 1)类关键字修饰符: 抽象类使用abstract修饰,含有抽象方法(使用abs ...

  10. java 类 抽象类 接口_Java抽象类和接口

    抽象类和接口 一.抽象类和抽象方法 对于抽象类,首先需要介绍抽象方法,而抽象类因抽象方法的存在而存在 1.抽象方法 (1)必要性: 有些父类方法不确定如何写方法体,但是对于继承它的子类又必须用到这个方 ...

最新文章

  1. 微软某程序员吐槽:如果毕业去字节,现在总包150万!如今一年才50万,看见字节的人都抬不起头!...
  2. python 特性和方法同名_Python语言特性的梳理
  3. PART 5: INTEGRATING SPRING SECURITY WITH SPRING BOOT WEB
  4. shell脚本练习(12.8)
  5. 免费12个月!阿里云助力中小企业0成本上云
  6. oracle 审计数据大,oracle审计AUD$过大导致的数据库登录异常
  7. perl的几个小tips
  8. 第七章:Servlet
  9. python算p值_Python sklearn-如何计算p值
  10. 【BZOJ 3993】【SDOI 2015】星际战争
  11. ſ xf(sinx)dx 中的f(sinx)到底是什么
  12. 转载:Docker入门只需看这一篇就够了
  13. 苏世民,我的经验和教训(一)
  14. ifstat网络流量监控之/proc/net/dev文件
  15. Android Fragment异常:java.lang.IllegalStateException: Fragment XXXFragment not attached to Activity
  16. 当深圳变成一座数字花园
  17. 信用卡识别(1)-预处理
  18. ES入门学习:ElasticSearch、Kibana、ik分词器的安装、简单使用及SpringBoot集成
  19. 隐藏内容_网络推广_seo中级视频教程详解
  20. 五一特别专辑:我今年三十二岁了......

热门文章

  1. Google强化学习框架SEED RL环境部署
  2. CentOS7 搭建Pulsar 消息队列环境,CentOS(Linux)部署Pulsar,亲测成功,以及Python操作Pulsar实例驱动
  3. linux清除cpu,解决kswapd0 CPU占用率高的问题-清除病毒
  4. dw如何写php代码提示,DW CS5 jquery代码提示插件
  5. Win7旗舰版电脑开机慢的解决方法
  6. warnings (imported as 'THREE') was not found in 'three'
  7. SpringBoot查看和修改依赖的版本
  8. springboot配置多项目下统一切换不同环境变量profile办法
  9. 关于Typora编辑器编写markdown文档时插入出现前字吞后字的解决方法
  10. Service Mesh(服务网格)