Unity 获取搜狗语音平台的令牌且对返回的字符串解析
获取到的字符串由UDP传输
搜狗语音平台嗷
using System;
using System.Collections;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using LitJson;
//using Google.Protobuf.WellKnownTypes;
using UnityEngine;
using UnityEngine.Networking;public class MyPostAndGet : MonoBehaviour
{JsonData token01;//这俩自己在控制台获得string APPID;string APPKEY;private string token;public UdpClient _UdpClient;public UdpServer _UdpServer;private void Start(){Debug.Log("print");print("debug.log");StartPost();}/// /// 用来获得移动令牌的/// public void StartPost(){//开局先连接上byte[] m_token = CreateTokenClient.CreateToken(APPID, APPKEY,"3600s");StartCoroutine(POST("https://api.zhiyin.sogou.com/apis/auth/v1/create_token",m_token));}public IEnumerator POST(string url, byte[] postBytes){UnityWebRequest request = new UnityWebRequest(url, "POST");//method传输方式,默认为Get;request.uploadHandler = new UploadHandlerRaw(postBytes);//实例化上传缓存器request.downloadHandler = new DownloadHandlerBuffer();//实例化下载存贮器request.SetRequestHeader("Content-Type", "application/json");//更改内容类型,yield return request.SendWebRequest();//发送请求Debug.Log("Status Code: " + request.responseCode);//获得返回值if (request.responseCode == 200)//检验是否成功{token = request.downloadHandler.text;//打印获得值JsonData herosJd = JsonMapper.ToObject(token);//最外层token01 = herosJd["token"];token01.ToString();}else{Debug.Log(request.responseCode);}}/// /// 用来发送语音的/// /// /// /// public void StartPost(int m_sample_rate_hertz,string m_language_code,string m_base64Str){byte[] m_a = CreateTokenClient.CreateToken(m_sample_rate_hertz,m_language_code,m_base64Str);StartCoroutine(POST2("https://api.zhiyin.sogou.com/apis/asr/v1/recognize",m_a));}public IEnumerator POST2(string url, byte[] postBytes){UnityWebRequest request = new UnityWebRequest(url, "POST");//method传输方式,默认为Get;request.uploadHandler = new UploadHandlerRaw(postBytes);//实例化上传缓存器request.downloadHandler = new DownloadHandlerBuffer();//实例化下载存贮器request.SetRequestHeader("Content-Type", "application/json");//更改内容类型,request.SetRequestHeader("Authorization", "Bearer "+token01);//tokenrequest.SetRequestHeader("Appid", APPID);//appidyield return request.SendWebRequest();//发送请求Debug.Log("Status Code: " + request.responseCode);//获得返回值if (request.responseCode == 200)//检验是否成功{token = request.downloadHandler.text;//打印获得值JsonData JsonObject = JsonMapper.ToObject(token);Debug.Log(JsonObject[0][0][0][0]["transcript"].ToString());if (_UdpServer.isServer)//如果是服务端连接客户端{_UdpServer._theGivenString = JsonObject[0][0][0][0]["transcript"].ToString();_UdpServer._isGiven = true;}else//如果是客户端连接服务端{_UdpClient._theGivenString = JsonObject[0][0][0][0]["transcript"].ToString();_UdpClient._isGiven = true;}}else{Debug.Log(request.responseCode);}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
